当我呼叫WSASend()
或WSARecv()
或AcceptEx()
时,完成数据包将被放置在完成端口中,我可以使用GetQueuedCompletionStatus()
将其出列。但是我怎么知道这个完成包代表什么操作呢?
答案 0 :(得分:2)
您使用包含其他信息的“扩展”OVERLAPPED
结构。这通常还包含数据缓冲区和一些标志,告诉调用者GetQueuedCompletionStatus()
完成类型是什么。
网上有很多关于IOCP的有用教程,我希望所有这些教程都能解释这一点,因为它非常基础。我的教程可以找到here,以及一些实现一些简单IOCP服务器的代码。