select()默认情况下可以处理64个套接字,我可以通过在编译时重写FD_SETSIZE常量来更改此限制。但是FD_SETSIZE可以容纳的最大数量是多少?

另外,我应该在Windows下真正使用select()还是应该使用WSAEventSelect()? (虽然不确定WSAEventSelect()是否允许超过64个套接字)。

最佳答案

MSDN没有指定FD_SETSIZE的上限。但是,有许多因素影响实际极限。

  • 并发连接限制(系统方式),在一般工作站上大约为1000〜4000。
  • 性能。 Windows的select()实现得很糟糕,您应该考虑对超过千个套接字使用WSAAsyncSelect()和完成端口。
  • 关于c++ - 在Windows中select()可以处理的最大套接字数量是多少?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28625348/

    10-14 18:39
    查看更多