根据我对IOCP的理解,当我创建完成端口并将套接字与其关联时,当套接字可以被读取时,将向完成端口发送通知。但是,对于如何处理send(),也就是说,如果我想发送数据,我应该只调用send()吗?那关于完成端口,它是否会收到有关send()的任何通知呢?
根据我对IOCP的了解,当我创建一个完成端口并将套接字与之关联时,当套接字准备好读取时,将向完成端口发送通知。不!IOCP机制的一个优点是,您可以将读/写请求及其关联的缓冲区排队到内核,并由内核线程池在内核状态中执行IO操作。这是一个I/O完成端口,即,您会在操作完成后得到通知。如果是读取,则返回带有数据已经加载的缓冲区(指针),您不需要再次显式地读取/复制。如果是写入,则数据已经传输,并且您返回的缓冲区(指针)可供删除/重用/重新汇集/其他操作。