【发布时间】:2015-08-10 15:33:33
【问题描述】:
我想了解为什么要使用 IOCP。我能想到两个原因:
- 由于
WSARecv()不会阻塞,所以我可以处理 1000 多个客户端,而无需为每个客户端创建一个新线程(此外,您可以创建的线程数量以及您创建的客户端数量都有限制可以处理将受到限制)。 - 既然
WSASend()不会阻塞,那么当我要发送一个大文件时,我不必创建一个新线程来发送它(如果我没有创建一个新线程那么UI线程会阻塞当然)。
还有哪些使用 IOCP 的理由?
【问题讨论】:
-
当然,没有成千上万的线程等待 I/O 完成才是重点。这无法扩展,线程太贵了。
标签: c sockets winapi iocp overlapped-io