IO完成端口和套接字发送()

IO Completion Ports and socket send()

本文关键字:套接字 IO      更新时间:2023-10-16

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

但是send()是如何处理的,我的意思是,如果我想发送数据,我应该只调用send()吗?那么完成端口呢?它收到关于send()的通知了吗?

根据我目前对IOCP的理解,当我创建一个完成端口并将套接字与之关联,则会向套接字准备好读取时的完成端口。

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

如果是读取,则会将已加载的数据返回到缓冲区(指针),而不必再次显式读取/复制它。

如果是写操作,则数据已经消失,返回的缓冲区(指针)。可以自由删除/重复使用/重新填充/其他任何内容。