【发布时间】:2012-07-25 02:38:32
【问题描述】:
我正在开发一个管理一个套接字的客户端应用程序。我正在使用 IOCP 来管理异步 I/O。
这是来自网络编程书籍的引述:
所有重叠的操作都保证按照应用程序发出它们的顺序执行。但是,不保证从完成端口返回的完成通知的顺序相同。也就是说,如果应用程序发布两个重叠的 WSARecv 操作,一个具有 10 KB 缓冲区,下一个具有 12 KB 缓冲区,则首先填充 10 KB 缓冲区,然后填充 12 KB 缓冲区。应用程序的工作线程可能会在 10 KB 操作的完成事件之前收到来自 GetQueuedCompletionStatus 的 12 KB WSARecv 通知。当然,这只是一个套接字上发布多个操作时的问题。
那么我该如何处理这个案子呢?
【问题讨论】:
标签: c++ sockets asyncsocket iocp