Socket在监听时,重载Accept函数,要重新New一个Socket,小弟不知道在哪里释放它,结束程序时老是有内存泄漏,求大神指教啊!
贴上代码:
void CListenSocket::OnAccept(int nErrorCode)
{
try
{
CServerSocket *s=new CServerSocket();
Accept(*s);
s->mwnd = mwnd;
}
catch(CException *pEx)
{
}
CSocket::OnAccept(nErrorCode);
}
提示内存泄漏为此行代码:
CServerSocket *s=new CServerSocket();
这是局部变量,不方便你访问,声明一个可以get到的socket,在你需要的时候delete掉
把他挂到外部,最好是可以自己需要的时候就获得,这样方便delete
在该套接字结束时shutdown或者closesocket,消灭之。
没有close掉吧,