上面是一个网友的评论(是匿名评论,无法直接向该网友提问).俺的问题是关于这段话的.俺理解他的意思是:
调用 WSASend(), 返回错误,
WSAGetLastError()取得错误号 != WSA_IO_PENDING
这时,按照MSDN文档介绍, GetQueuedCompletionStatus()不会返回,
"no completion indication will occur." ---MSDN原文
但上面的评论的意思则是, 事实上不是如此,俺的问题就是:
1. 大家有没有遇到过这种特别的情况?
2. 他说"有时候不会返回FALSE" 是指不返回值(即不引发完成事件),还是指有时返回TRUE?
从字面看俺猜是前者, 不过想请 有丰富IOCP经验的同志 拿一个肯定意见.
3. 遇到这样的错误应该怎样处理?
解决方案 »
- 图形围绕轴旋转,高手进!!!!!!!!!!!!!
- 怎么把一个整型的IP转换成字符串?
- 关于关闭进程
- 数据采集、处理无法实时。因为处理数据的程序速度慢,我开了两个线程,一个实时采集,采集速度很快,另一个处理数据
- 如何编程实现SQL Server的数据同步?
- 寻求VC经典图书下载地址(能下就给分)
- 郁闷得茶饭不思.....SDI中多视图互访有困难?
- 小问题关于ReadFile的,请进~
- 有个很郁闷的需求,有关笔记本串口的!
- 谁知道怎样从才可以使用(导出)DLL中带参数的函数?谢谢!error C2197: 'int (__stdcall *)(void)' : too many actual parameters
- 散分!散分!!
- 请问我想实现像“我的电脑”里的按了“文件夹”按钮后左边能浏览文件并且能打开文本文件?
应该找IOCP的源码看看,就知道了
帮你顶一下吧
如果返回的是网络错误,那么之前发起的异步操作必然导致GetQueuedCompletionStatus返回错误对GetQueuedCompletionStatus的返回结果进行判断是必须的
现在基于完成端口的成熟软件相当多了,我不认为完成端口设计的有问题
“IOCP设计者的确是猪”说这句话的人恰恰说明了他自己的水平
当提交 WSASend() 后,GetQueuedCompletionStatus() 返回FALSE,
它的 *lpNumberOfBytes 可能大于0吗? 也就是说,它会否已经send出了部分数据呢?
WSAGetLastError()取得错误号 != WSA_IO_PENDING
这时,按照MSDN文档介绍, GetQueuedCompletionStatus()不会返回,
"no completion indication will occur." ---MSDN原文
俺确认一下,
而 unsigned 在7楼的意见就是, MSDN的描述是可靠的?
俺在5楼提的问题也就不存在了?
WSAGetLastError()取得错误号 != WSA_IO_PENDING
这时,按照MSDN文档介绍, GetQueuedCompletionStatus()不会返回,
"no completion indication will occur." ---MSDN原文
俺确认一下,
而 unsigned 在7楼的意见就是, MSDN的描述是可靠的?
俺在5楼提的问题也就不存在了?