private void Open(EndPoint localEndPoint, int pendingConnections)
 {
     try
     {
         handle = SocketFactory.CreateNonBlockingTcpSocket();
         IPEndPoint ipep = (IPEndPoint)localEndPoint;
         handle.UserSocket.ExclusiveAddressUse = false;
         handle.Bind(ipep);
         handle.Listen(pendingConnections);
         this.reactor.RegisterHandler(this, EventType.ACCEPT_EVENT);
         log.Info("Acceptor listening on {0} : {1}", ipep.Address.ToString(), ipep.Port.ToString());
     }
     catch (ObjectDisposedException ex)
     {
         log.Warn(ex, "Acceptor Socket has been disposed");
     }
     catch (SocketException ex)
     {
         log.Error(ex, String.Format("Acceptor failed to bind to local endpoint. WSAError - {0}",
                                     ex.SocketErrorCode.ToString()));
         Dispose();
     }
 }
Example #2
0
        public void AddConnection(EndPoint remoteAddress, bool keepAlive, bool stream)
        {
            IServiceHandler serviceHandler;

            if (keepAlive && !stream)
            {
                serviceHandler = new TcpVarData_SockServiceHandler(reactor, true, 5000);
            }
            else if (!keepAlive && !stream)
            {
                serviceHandler = new TcpVarData_SockServiceHandler(reactor, false, 0);
            }
            else
            {
                serviceHandler = new TcpEoLData_SockServiceHandler(reactor);
            }

            ISocket socket = SocketFactory.CreateNonBlockingTcpSocket();

            serviceHandler.Handle = socket;
            serviceHandler.ConnectionNotification += ConnectNotification;
            connector.Connect(serviceHandler, remoteAddress, Connection_Mode.ASYNC);
        }