Beispiel #1
0
        private void ConnectedProcess(System.Net.Sockets.Socket e)
        {
            TcpSession session = new TcpSession();

            session.Socket            = e;
            session.ReceiveBufferPool = this.ReceiveBufferPool.Next();
            session.SendBufferPool    = this.SendBufferPool.Next();
            session.SSL = Config.SSL;
            session.Initialization(this, null);
            session.SendEventArgs.Completed    += IO_Completed;
            session.ReceiveEventArgs.Completed += IO_Completed;
            session.LittleEndian   = Config.LittleEndian;
            session.RemoteEndPoint = e.RemoteEndPoint;
            if (this.Packet != null)
            {
                session.Packet           = this.Packet.Clone();
                session.Packet.Completed = OnPacketDecodeCompleted;
            }

            session.ReceiveDispatcher = mReceiveDispatchCenter.Next();
            if (Config.SendQueueEnabled)
            {
                session.SendDispatcher = mSendDispatchCenter.Next();
            }
            AddSession(session);
            if (!Config.SSL)
            {
                EventArgs.ConnectedEventArgs cead = new EventArgs.ConnectedEventArgs();
                cead.Server  = this;
                cead.Session = session;
                OnConnected(cead);
                if (EnableLog(LogType.Debug))
                {
                    Log(LogType.Debug, session, "{0} begin receive", e.RemoteEndPoint);
                }
                BeginReceive(session);
            }
            else
            {
                session.CreateSSL(SslAuthenticateAsyncCallback);
                if (EnableLog(LogType.Debug))
                {
                    Log(LogType.Debug, session, "{0} begin ssl Authenticate", e.RemoteEndPoint);
                }
            }
        }
Beispiel #2
0
        private void ConnectedProcess(AcceptSocketInfo e)
        {
            TcpSession session = new TcpSession();

            session.MaxWaitMessages   = Options.MaxWaitMessages;
            session.Socket            = e.Socket;
            session.Server            = this;
            session.Host              = e.Listen.Host;
            session.Port              = e.Listen.Port;
            session.ListenHandler     = e.Listen;
            session.ReceiveBufferPool = this.ReceiveBufferPool.Next();
            session.SendBufferPool    = this.SendBufferPool.Next();
            session.SSL = e.Listen.SSL;
            session.Initialization(this, null);
            session.SendEventArgs.Completed    += IO_Completed;
            session.ReceiveEventArgs.Completed += IO_Completed;
            session.LittleEndian   = Options.LittleEndian;
            session.RemoteEndPoint = e.Socket.RemoteEndPoint;
            if (this.Packet != null)
            {
                session.Packet           = this.Packet.Clone();
                session.Packet.Completed = OnPacketDecodeCompleted;
            }

            session.ReceiveDispatcher = mReceiveDispatchCenter.Next();
            AddSession(session);
            if (!e.Listen.SSL)
            {
                EventArgs.ConnectedEventArgs cead = new EventArgs.ConnectedEventArgs();
                cead.Server  = this;
                cead.Session = session;
                OnConnected(cead);
                BeginReceive(session);
            }
            else
            {
                if (EnableLog(LogType.Info))
                {
                    Log(LogType.Info, session, "{0} begin ssl Authenticate", session.RemoteEndPoint);
                }
                session.CreateSSL(SslAuthenticateAsyncCallback, e.Listen, this);
            }
        }