Example #1
0
 unsafe void BeginAccept(RioConnectionOrientedSocket acceptSocket)
 {
     int recived = 0;
     acceptSocket.ResetOverlapped();
     if (!RioStatic.AcceptEx(_listenerSocket, acceptSocket.Socket, acceptSocket._adressBuffer, 0, sizeof(sockaddr_in) + 16, sizeof(sockaddr_in) + 16, out recived, acceptSocket._overlapped))
     {
         if (WinSock.WSAGetLastError() != 997) // error_io_pending
             WinSock.ThrowLastWSAError();
     }
     else
         OnAccepted(acceptSocket);
 }
 internal unsafe virtual void Recycle(RioConnectionOrientedSocket socket)
 {
     RioSocket c;
     activeSockets.TryRemove(socket.GetHashCode(), out c);
     socket.ResetOverlapped();
     socket._overlapped->Status = 1;
     if (!RioStatic.DisconnectEx(socket.Socket, socket._overlapped, disconnectexflag, 0)) //TF_REUSE_SOCKET
         if (WinSock.WSAGetLastError() != 997) // error_io_pending
             WinSock.ThrowLastWSAError();
     //else
     //    AcceptEx(socket);
 }
Example #3
0
        unsafe void BeginAccept(RioConnectionOrientedSocket acceptSocket)
        {
            int recived = 0;

            acceptSocket.ResetOverlapped();
            if (!RioStatic.AcceptEx(_listenerSocket, acceptSocket.Socket, acceptSocket._adressBuffer, 0, sizeof(sockaddr_in) + 16, sizeof(sockaddr_in) + 16, out recived, acceptSocket._overlapped))
            {
                WinSock.ThrowLastWSAError();
            }
            else
            {
                acceptSocket.SetInUse(true);
                OnAccepted(acceptSocket);
            }
        }
Example #4
0
        unsafe void BeginAccept(RioConnectionOrientedSocket acceptSocket)
        {
            int recived = 0;

            acceptSocket.ResetOverlapped();
            if (!RioStatic.AcceptEx(_listenerSocket, acceptSocket.Socket, acceptSocket._adressBuffer, 0, sizeof(sockaddr_in) + 16, sizeof(sockaddr_in) + 16, out recived, acceptSocket._overlapped))
            {
                if (WinSock.WSAGetLastError() != 997) // error_io_pending
                {
                    WinSock.ThrowLastWSAError();
                }
            }
            else
            {
                OnAccepted(acceptSocket);
            }
        }
        internal unsafe virtual void Recycle(RioConnectionOrientedSocket socket)
        {
            RioSocket c;

            activeSockets.TryRemove(socket.GetHashCode(), out c);
            socket.ResetOverlapped();
            socket._overlapped->Status = 1;
            if (!RioStatic.DisconnectEx(socket.Socket, socket._overlapped, disconnectexflag, 0)) //TF_REUSE_SOCKET
            {
                if (WinSock.WSAGetLastError() != 997)                                            // error_io_pending
                {
                    WinSock.ThrowLastWSAError();
                }
            }
            //else
            //    AcceptEx(socket);
        }
Example #6
0
 unsafe void BeginAccept(RioConnectionOrientedSocket acceptSocket)
 {
     int recived = 0;
     acceptSocket.ResetOverlapped();
     if (!RioStatic.AcceptEx(_listenerSocket, acceptSocket.Socket, acceptSocket._adressBuffer, 0, sizeof(sockaddr_in) + 16, sizeof(sockaddr_in) + 16, out recived, acceptSocket._overlapped))
     {
         WinSock.ThrowLastWSAError();
     }
     else
     {
         acceptSocket.SetInUse(true);
         OnAccepted(acceptSocket);
     }
 }