GetQueuedCompletionStatus在未完成的WSASend上获得成功

时间:2015-06-29 13:35:43

标签: sockets io-completion-ports

我在套接字引擎中遇到了一个奇怪的行为。然后引擎使用带有OVERLAPPED结构的IO完成端口。

我使用WSASend(每次调用一个缓冲区)发送几个数据包,但有时我成功调用GetQueuedCompletionStatus,其中传输的字节为零!如果我拨打WSAGetOverlappedResult(无等待),则会返回WSA_IO_INCOMPLETE

一段时间后,我收到一个具有相同重叠结构的新完成数据包,这次传输的字节与缓冲区长度匹配,WSAGetOverlappedResult不返回任何错误。

为什么操作系统在数据包仍在队列中时会生成完成通知?

0 个答案:

没有答案