注册 登录
编程论坛 VC++/MFC

CSocket 内存一直涨的问题。请有经验的朋友帮忙看看

andibo 发布于 2012-09-08 21:59, 358 次点击
UINT CNetworkComDlg::ThreadProc(LPVOID lparam)//
{

  if (!netwhenb)
  {
  return 0;
  }


  RECVPARAM *pRecvData=(RECVPARAM *)lparam;
  CSocket *server=pRecvData->serverSocket;
  SOCKET sock=pRecvData->pSOCKET;
  server->Attach(sock);//将CSocket与SOCKET绑定

while(true)
  {
  if (!netwhenb)
  {
  break;
  }
  CSocket *clientSocket=new CSocket;
  server->Accept(*clientSocket);//获得客户端的连接Accept就是取一个包回来 指针向clientSocket。
//clientSocket->Receive();

  //接收客户端的连接之后启动新的线程来处理与客户端的交互
pRecvData->currentSocket=clientSocket;
  SOCKET hSOCKET=clientSocket->Detach();//从CSocket中分离出SOCKET 就是这个句? 这个会涨内存
   pRecvData->pSOCKET=hSOCKET;
     
  //SendRecvProc(pRecvData);
  delete(clientSocket);
  }
  AfxEndThread(0);
  return 0;
}



怎么我delete clientSocket SendRecvProc 我又关了,但 在 Detach()后内存都一直在涨。有什么办法能free掉内存吗。一直4k4k 的涨,涨到16m左右内存占用直接就给我死掉了。为什么Detach()会让内存涨个不停啊。
0 回复
1