在完成端口操作同时WSARecv和WSASend的时候,客户端关闭,会不会收到两次关闭信息?

yahle 2006-09-25 09:06:22
ret = GetQueuedCompletionStatus(pthis->m_hIocp, &berByte, (LPDWORD)&re, (LPOVERLAPPED *)&pOverlap, INFINITE);

if (berByte == 0)
{
// 客户端断开连接
pthis->OnClose(re);
OVERLAPPEDPLUS *olp = (OVERLAPPEDPLUS *)pOverlap;
closesocket(olp->s);
delete olp; // 释放 与socket绑定的结构体变量
continue;
}

上面的是在完成端口失败时处理的代码,因为要接受客户端的信息,所以WSARecv都是一直存在着的。如果这时在调用WSASend的时候,客户端突然关闭,请问这个时候,if (berByte == 0)里的内容会不会被执行两次?
...全文
297 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yahle 2006-10-10
  • 打赏
  • 举报
回复
算了,就当做会触发两次好了,没时间做试验了。
mxfeng 2006-09-30
  • 打赏
  • 举报
回复
做个实验,才能有结果啊!
Asdcer 2006-09-29
  • 打赏
  • 举报
回复
帮你UP
up4
yahle 2006-09-28
  • 打赏
  • 举报
回复
up3
yahle 2006-09-27
  • 打赏
  • 举报
回复
up2
yahle 2006-09-26
  • 打赏
  • 举报
回复
up

4,358

社区成员

发帖
与我相关
我的任务
社区描述
通信技术相关讨论
社区管理员
  • 网络通信
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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