我有一个服务器程序(单文本)
建立了一个侦听类CListenningSock(CServerDoc* pDoc)
void CListeningSock::OnAccept(int nErrorCode) 
{
// TODO: Add your specialized code here and/or call the base class
CSocket::OnAccept(nErrorCode);
m_pDoc->Accept();
}void CServerDoc::Accept()
{
CClientSock* m_hsock=new CClientSock(this);
if(!m_pSock->Accept(*m_hsock))
delete m_hsock;
}
然后由这个客户端Socket类来负责消息的发送和接收----------------------------------------------------------
基本情况是这样,我为了避免内存泄漏,在客户端发出关闭消息的时候,要删除m_hsock.
—————————————————————————————
怎样删除?

解决方案 »

  1.   

    在CListeningSock::OnClose()中delete this;
      

  2.   

    不是吧
    我已经把连接关闭了,现在要
    delete m_hsock
    在哪里调用这个方法,大哥给个方案
      

  3.   

    void C你的Socket::OnClose(int nErrorCode) 
    {
    // TODO: Add your specialized code here and/or call the base class
    if(nErrorCode==0)
    m_pDlg->ClientClose();
    基Socket::OnClose(nErrorCode);
    }void CClientDlg::ClientClose()
    {
    m_hsock->Close();
    delete m_hsock;
    }
      

  4.   

    LuckFox(小狐狸)大哥
    恐怕不行吧,我的m_hsock是在Accept()里面声明的变量,不能在程序外面调用吧
    我不太明白。
    请指教