public FakeMessageReceiver()
        {
            ScanInterfaces           scanInterfaces = new ScanInterfaces();
            IList <NetworkInterface> ifaces         = scanInterfaces.NetworkInterfaces;

            if (ifaces.Count <= 0)
            {
                throw new IndexOutOfRangeException("No network interfaces");
            }

            this.incomingInterface = ifaces[0];
        }
        public void Setup()
        {
            ScanInterfaces scanInterfaces = new ScanInterfaces();

            this.matcher          = new InterfaceMatcher(scanInterfaces.NetworkInterfaces);
            this.filteredAnnounce = null;
            this.fmr = new FakeMessageReceiver();
            AnnounceDeserializer parser = new AnnounceDeserializer();

            this.fmr.HandleMessage    += parser.HandleEvent;
            this.filter                = new AnnounceFilter(this.matcher);
            parser.HandleMessage      += this.filter.HandleEvent;
            parser.HandleMessage      += this.HandleAnnounceEvent;
            this.filter.HandleMessage += this.HandleFilteredEvent;
        }