阻塞模式下的WSASend()是否会将通知包放入完成端口?

时间:2015-02-25 22:12:11

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

如果我在调用时不提供重叠结构或完成例程,我可以在阻塞模式下使用WSASend()。但我的问题是:阻塞WSASend()调用会导致通知数据包被置于完成端口吗?

2 个答案:

答案 0 :(得分:3)

问题是形象不对称。在您之前的问题中,我们已经多次这样做了,例如here。要么没有完成例程也没有重叠结构,在这种情况下也没有完成数据包,或者在这种情况下你根本没有处于阻塞模式,你处于异步模式。

答案 1 :(得分:2)

如果您的套接字 已注册完成端口,您可以仍然通过将NULL传递给完成例程和{{1}来进行阻止呼叫结构参数。并且您将不会收到通知(即使您的套接字已在完成端口注册)。但是,我不知道是否建议在阻止模式下使用OVERLAPPED,同时在重叠模式下使用WSASend()