Beispiel #1
0
        void EnsureInitialized()
        {
            if (!_isInitialized)
            {
                short wVersion = 0x0202;
                NativeSockets.WSAData wsaData = new NativeSockets.WSAData();

                SocketError err = NativeSockets.WSAStartup(wVersion, out wsaData);

                if (err != SocketError.Success)
                {
                    throw new SocketException((int)err);
                }

                _eventSignalThread = new AutoResetEvent(false);

                _evtSocketRecv = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
                _evtSocketRecv.Bind(new IPEndPoint(IPAddress.Loopback, 0));

                _evtSocketSend = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
                _evtSocketSend.Bind(new IPEndPoint(IPAddress.Loopback, 0));

                _threadWaitForEvents = new Thread(new ThreadStart(WaitForNetworkEvents));
                _threadWaitForEvents.Start();

                _isInitialized = true;
            }
        }