ソケット通信でメモリーリークするのはなぜしょう? – プログラミング – Home

ソケット通信でメモリーリークするのはな...
 
通知
すべてクリア

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


さる
 さる
(@さる)
ゲスト
結合: 21年前
投稿: 29
Topic starter  

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


引用未解決
トピックタグ
さる
 さる
(@さる)
ゲスト
結合: 21年前
投稿: 29
Topic starter  

お騒がせしました。
スレッド構成が間違えていました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました