使用WSAEventSelect时如何突破64限制

时间:2010-02-10 03:26:05

标签: c++ networking

我用WSAEventSelect开发一个echo服务器。它只允许64个连接。我该怎么办。

4 个答案:

答案 0 :(得分:3)

这听起来很像MAXIMUM_WAIT_OBJECTS限制,即64.函数WaitForMultipleObjectsEx受到该数字的限制。该链接谈论解决方案。如果您正在使用WSAWaitForMultipleEvents,那么可能是因为文档说它调用了WaitForForMultipleObjectsEx。

答案 1 :(得分:0)

使用更多主题。然后每个线程可以处理64个连接。根据您的硬件,很有可能创建10-100个线程。

答案 2 :(得分:0)

有3种选择:

  1. 在每个最大#句柄中使用更多线程等待
  2. 使用WSAAsyncSelect代替WSAEventSelect并使用Window消息
  3. 使用重叠IO(这非常复杂,但最适合大量客户端)
  4. 内核强制限制线程可以在一个WaitFor函数中等待最多64个内核对象。

答案 3 :(得分:0)

2.使用WSAAsyncSelect而不是WSAEventSelect并使用Window消息

我只会在客户端使用WSAAsyncSelect进行简单的实现,而不是服务器!!