IOCP中的GetQueuedCompletionStatus取得WSARecv数据的问题

Barry__ 2016-01-10 05:09:33
请教一下,我学习了<Windows网络与通信程序设计>里面iocp源码,并修改了它源码的几处错误(我只是修改了几处错误),然后运行起来和网上下载的另一个的iocp模型比较,有一个差异我不明白,想问一下你知道这个差异是为什么吗?

我是这样比较的:服务器运行起来只负责接收并打印收到的数据,只连接一个客户端,客户端只负责for循环30次,每次send 500btye数据,两个服务器打印结果是这样的:
网上下载的iocp模型,每次打印收到500byte,打印了30次,总共收到15000
Windows网络与通信程序设计>里面iocp源码 每次打印不确定数据,例如500,1000,2000等,打印n次后,最后总共收到15000

我保证了两个服务器的接收buff均为4k,服务线程数都为8个,收到客户端连接后第一次都是投递相同数量的WSARecv
IOCP端口上同时运行的线程都为4个,那么,这个差异是什么导致的呢?或者说,GetQueuedCompletionStatus每次返回的时候所收到数据的大小,是受什么影响呢?
请大神不吝赐教,小弟不胜感激


...全文
154 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Barry__ 2016-01-10
  • 打赏
  • 举报
回复
知道原因了,因为我iocp源码的那个服务器,在接收到数据时,逻辑处理多一点,耽误了一点时间,取数据的速度慢了,就积攒下了

18,356

社区成员

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

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