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