100分解决多线程通信服务端中的内存问题,急!
我在一个多线程处理的服务端程序中,使用了CSocket类。
首先,侦听端口。如果有连接请求被Accept,则转入到新的线程取处理。
while(1)
{
CSocket nsock;
SOCKET tsock;
i=sizeof(sockaddr);
if(listen_socket.Accept(nsock,&nfrm,&i)!=0)
{
tsock=nsock.Detach();
if(AfxBeginThread(ReceviceProc,(void *)tsock)==NULL)
{
nsock.Close();
}
else
{
。。。
}
nsock.Close();
}
}
在处理线程ReceiveProc中,重新定义一个CSocket对象sock,sock.Attach((SOCKET)nPara)),在处理线程退出时,sock.Close(),但是,最近发现有内存问题,即在任务管理器中发现内存在4k的增加,但是,我该关闭的东西全部都关闭了。通过内存监测工具检查不出来。VC中的Debug页检查不出。请高手指点。