public void Start()
        {
            _ts.TraceEvent(TraceEventType.Start, 100, "Starting listener on {0}", _multicastAddress);

            _socket.ReceiveBufferSize = ReceiveBufferSize;

            IPEndPoint multicastEndpoint = _multicastAddress.ResolveHostName().Single();

            _socket.Bind(multicastEndpoint);

            _ts.TraceEvent(TraceEventType.Verbose, 0, "Bind listener to {0} complete", multicastEndpoint);

            AddAdditionalInterfaces();

            _socket.EnableHighSpeed();
            _socket.Listen(3);

            _socket.BeginAccept(AcceptConnection, null);

            _ts.TraceEvent(TraceEventType.Stop, 100, "Listener started on {0}", _multicastAddress);
        }