Example #1
0
        private void AcceptHandle(SocketAsyncEventArgs args)
        {
            // Capture References
            var acceptedSocket = args.AcceptSocket;
            var socketError    = args.SocketError;
            var successful     = (args.SocketError == SocketError.Success);
            var aborted        = (args.SocketError == SocketError.OperationAborted);

            // Free Resources
            ReleaseSocketArgs(args); // return borrowed event args.

            // Process
            if (successful)
            {
                var clientSocket = new NetSocket(Address, BufferPool, SocketPool, acceptedSocket);
                OnAccepted(clientSocket); // AcceptAsync(); Ask caller to loop.
            }
            else
            {
                Disconnect(acceptedSocket);
                if (!aborted)
                {
                    RaiseFault(socketError, "Failed to handle accepting of a client socket.");
                }
            }
        }
Example #2
0
 public void Bind(int port, string host)
 {
     Address = NetAddress.Resolve(port, host, Options.IPv4Only);
     Socket = new NetSocket(Address, BufferPool, SocketArgPool);
     Socket.OnAccepted = HandleAccept;
     Socket.Listen(Options.MaxAccept);
     OnListen(this);
     StartAccept();
 }
Example #3
0
        private void AcceptHandle(SocketAsyncEventArgs args)
        {
            // Capture References
            var acceptedSocket = args.AcceptSocket;
            var socketError = args.SocketError;
            var successful = (args.SocketError == SocketError.Success);
            var aborted = (args.SocketError == SocketError.OperationAborted);

            // Free Resources
            ReleaseSocketArgs(args); // return borrowed event args.

            // Process
            if (successful)
            {
                var clientSocket = new NetSocket(Address, BufferPool, SocketPool, acceptedSocket);
                OnAccepted(clientSocket); // AcceptAsync(); Ask caller to loop.
            }
            else
            {
                Disconnect(acceptedSocket);
                if (!aborted)
                {
                    RaiseFault(socketError, "Failed to handle accepting of a client socket.");
                }
            }
        }