private void Session_SessionClosed(object sender, SessionCloseEventArgs e) { m_ReadPool.Push(e.SocketEventArgsRecv); lock (dictSession) { ISocketSession ss; dictSession.TryRemove(e.SessionID, out ss); } lock (m_bufferManager) { UdpSocketAsyncBuffer ub; m_bufferManager.TryRemove(e.SessionID, out ub); } m_Logger.InfoLogger(string.Format("Session:{0} Timeout,GC SocketAsyncEventArgs", e.SessionID)); }
private void session_SessionClosed(object sender, SessionCloseEventArgs e) { TcpSocketAsyncSession session = sender as TcpSocketAsyncSession; m_ReadWritePool.Push(e.SocketEventArgsRecv); ISocketSession ise; if (dictSession.TryRemove(session.SessionId, out ise)) { m_Logger.InfoLogger("Remote Client: " + session.RemoteEndPoint.Address.ToString()+":"+session.RemoteEndPoint.Port + " closed, " + e.Reason); } }