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); } } }
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); } }