完成端口压力测试出现的内存泄露

心中那自由的世界 2007-09-29 10:59:41


int k=0;
while (k++ < 100)
{
int j = 0;
for (int i=0; i<ITEMNO; i++)
{
if (!arr[i]->Send(buffer, 4095))
{
j = 1000;
k = 1000;

OutputString("send error %d\n", WSAGetLastError());
break;
}
Sleep(5);
}
OutputString("send success one time\n");

for (i=0; i<ITEMNO && k<100; i++)
{
if (!arr[i]->DisConnect())
{
AfxMessageBox("error at discon");
k = 1000;
break;
}
Sleep(5);
}

Sleep(1000);
for (i=0; i<ITEMNO && k<100; i++)
{
if (!arr[i]->Connect("127.0.0.1", 1111))
{
AfxMessageBox("error at connect");
k = 1000;
break;
}
Sleep(5);
}
}


客户端测试代码如上所示,ITEMNO = 100, DEBUG下,如果去掉所有的Sleep调用,服务器就会出现内存泄露,如果加上Sleep调用,则没有任何内存泄露。 这是为什么???
...全文
190 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
maxsuy 2007-10-03
  • 打赏
  • 举报
回复
服务器有问题哈
Torch009 2007-09-29
  • 打赏
  • 举报
回复
不懂,帮顶
kangji 2007-09-29
  • 打赏
  • 举报
回复
服务器是多线程么?
  • 打赏
  • 举报
回复
没有sleep发送出错,应该是你的服务器接收能力不够健壮。难道这个问题就没有别的人遇到了?DAMMN,那我还要做一个发送时间限制机制?
smartdrvsky 2007-09-29
  • 打赏
  • 举报
回复
mark,confront the same problem with u
如果不sleep,消息马上发送,如果多条消息一起发送,则服务端还没处理前一条消息而出错
我在客户端里加了个FOR循环不断发消息,如果没SLEEP,则出错,你的问题提醒了我哈,3Q

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧