Overlapped I/O 是否也在客户端使用?

Is Overlapped I/O used on the client side also?

我认为 Overlapped I/O 是为了在服务器端使用而发明的,主要是为了能够处理成千上万的客户端。所以我认为没有任何理由在客户端使用它。我的假设正确吗?

这不是 client/server 问题。这是一个工作量问题。客户通常没有任何理由同时保留许多 IOs 未完成。这是异步 IO 的主要用例。

端口扫描器是客户端异步 IO 的一个很好的例子。

您是否假设客户端一次只需要 1 个连接? "simple" 浏览器可以打开 10 个页面,下载 10 个文件,播放 10 个视频等。重叠 I/O 将是客户端保持 "responsive".

的好方法

编写基于 IOCP 的服务器所需的代码与编写客户端所需的代码有 95% 相同。唯一的区别是连接建立,ConnectEx vs AcceptEx.

恕我直言,没有理由不使用 IOCP 进行客户端通信。