IO完成端口和套接字send()

时间:2015-02-21 12:36:34

标签: c++ windows sockets winapi iocp

根据我对IOCP到目前为止的理解,当我创建一个完成端口并将套接字关联到它时,当一个套接字准备好被读取时,通知将被发送到完成端口。

但是如何处理send(),我的意思是,如果我想发送数据,我应该拨打send()吗?完成端口怎么样,是否收到有关send()的任何通知?

1 个答案:

答案 0 :(得分:6)

  

根据我对IOCP的理解,当我创建完成时   端口并将套接字关联到它,通知将被发送到   准备好读取套接字时的完成端口。

NO! IOCP机制的一个优点是,您可以将具有关联缓冲区的读/写请求排队到内核,并让内核线程池在内核状态下执行IO操作。它是I / O COMPLETION端口,即。操作完成后会通知您。

如果它是一个读取,你得到你的缓冲区,(指针),回到已加载的数据 - 你不必再次明确地读取/复制它。

如果是写入,则数据已经消失,返回的缓冲区(指针)。可以自由删除/重用/再处理/无论如何。