Example #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;
            }
        }
Example #2
0
        int ISocketsDriver.getaddrinfo(IntPtr nodename, IntPtr servname, IntPtr hints, out IntPtr res)
        {
            res = IntPtr.Zero;

            int ret = NativeSockets.getaddrinfo(nodename, servname, hints, out res);

            StoreLastError();

            return(ret);
        }
Example #3
0
 void StoreLastError()
 {
     _dwLastError = NativeSockets.WSAGetLastError();
 }
Example #4
0
 void ISocketsDriver.freeaddrinfo(IntPtr ai)
 {
     NativeSockets.freeaddrinfo(ai);
 }