ソケット通信でメモリーリークするのはなぜしょう?

[戻る]
さる 2005/01/05(水) 14:25:54
お世話になります。
VC++(.NET2003) OS XP Proで、TCP/IPサーバープログラムを作成しています。
通信はうまく行っているのですが、Recieve、Send を繰り返していると、
メモリ消費量が増大して、2日程度で、プログラムが止まってしまいます。
プログラム構造は、以下の通りです。
//接続受付スレッド
UINT    ThreadFuncS(LPVOID n)
{
 socp =    new CSocket();
  ret  = socp->Create(MSRP_SOC_PORT_U,SOCK_STREAM,NULL);
  bret =    socp->Listen();
  CClientSoc*  socp2 = new CClientSoc();  // CAsyncSocket の派生クラス
  if (socp->Accept(*socp2,NULL,NULL))
  {
    AfxBeginThread((AFX_THREADPROC)ThreadFuncSS,
      (LPVOID)socp2,THREAD_PRIORITY_BELOW_NORMAL);
  }
  else  delete  socp2;
}
//クライアント個別スレッド
UINT    ThreadFuncSS(LPVOID n)
{
  CClientSoc  *socp;
  socp  =  (CClientSoc *)n;
  while(1)
  {
    socp->Recieve(......); // 実際は受信長をチェックしています。
    socp->Send(......);
  }
}

CClientSoc の OnRecieve が呼び出されていません。
そのため、バッファが開放されずに、この様な現象になるのではないかと考えていますが、
対処方法が解りません。
思いっきり的がはずれているかも知れませんが、どなたかご教授ねがえませんでしょう
か?
よろしくお願いいたします。

さる 2005/01/05(水) 14:47:06
[[解決]]
お騒がせしました。
スレッド構成が間違えていました。

古いスレッドには追加発言できません。