如何知道完成包是用于WSASend()还是WSARecv()或AcceptEx()?

时间:2015-02-24 15:01:39

标签: c++ sockets winapi network-programming iocp

当我呼叫WSASend()WSARecv()AcceptEx()时,完成数据包将被放置在完成端口中,我可以使用GetQueuedCompletionStatus()将其出列。但是我怎么知道这个完成包代表什么操作呢?

1 个答案:

答案 0 :(得分:2)

您使用包含其他信息的“扩展”OVERLAPPED结构。这通常还包含数据缓冲区和一些标志,告诉调用者GetQueuedCompletionStatus()完成类型是什么。

网上有很多关于IOCP的有用教程,我希望所有这些教程都能解释这一点,因为它非常基础。我的教程可以找到here,以及一些实现一些简单IOCP服务器的代码。