【发布时间】:2015-02-24 12:37:27
【问题描述】:
我认为 Overlapped I/O 的发明是为了在服务器端使用,主要是为了能够处理数千个客户端。所以我认为没有任何理由在客户端使用它。我的假设正确吗?
【问题讨论】:
标签: c++ windows sockets network-programming overlapped-io
我认为 Overlapped I/O 的发明是为了在服务器端使用,主要是为了能够处理数千个客户端。所以我认为没有任何理由在客户端使用它。我的假设正确吗?
【问题讨论】:
标签: c++ windows sockets network-programming overlapped-io
您是否假设客户端一次只需要 1 个连接?一个“简单”的浏览器可以打开 10 个页面、下载 10 个文件、播放 10 个视频等。重叠 I/O 将是客户端保持“响应”的好方法。
【讨论】:
这不是客户端/服务器问题。这是一个工作量问题。客户通常没有任何理由同时保持许多未完成的 IO。这是异步 IO 的主要用例。
端口扫描器是客户端异步 IO 的一个很好的例子。
【讨论】:
编写基于 IOCP 的服务器所需的代码与编写客户端所需的代码有 95% 相同。唯一的区别是连接建立,ConnectEx 与 AcceptEx。
恕我直言,没有理由不使用 IOCP 进行客户端通信。
【讨论】: