WSASend的时候 发送成功 返回值为0 且 WSAGe他LastError 为WSA_IO_PENDING ,但GetQueuedCompletionStatus 却死活收不到完成通知
发生这样的情况的测试条件: 单个客户端,每次重叠发送2个数据包,每50毫秒发送一次 如果是仅仅每次发送一个数据包,就不会出现以上问题
WSASend 都是直接发送,不会有 WSA_IO_PENDING这会是啥原因呢 ,按理应该会收到的啊
发生这样的情况的测试条件: 单个客户端,每次重叠发送2个数据包,每50毫秒发送一次 如果是仅仅每次发送一个数据包,就不会出现以上问题
WSASend 都是直接发送,不会有 WSA_IO_PENDING这会是啥原因呢 ,按理应该会收到的啊
接收方没有接收
当收到WSA_IO_PENDING时不要继续在同一个OVERLAY上投递。如果你强制投递是不可预知的后果。
Lee Jim 说:
WSARecv是没有问题的 WSASend会出现这样的结果么 这个还真不知道呢 那用重叠WSASend是不是不合适呢 有什么解决方案么 服务不能都等待客户端接收完后再投递下一个吧
野蛮人 说:
你应该收到这个消息时,进入等状态,直到收到完成通知
这种情况一般发生在客户来不及接收的情况
当收到通知后,才能进行下次投递
否则就出错了