【发布时间】:2012-06-18 04:22:47
【问题描述】:
我在 Linux 上使用 C 语言编写了一个聊天服务器。我已经测试过了,它在性能方面工作得很好。唯一滞后的是我正在使用 select 系统调用来处理套接字描述符。由于 select 的限制为 1024,所以我的聊天服务器最多只能同时处理 1024 个用户。
我知道我可以使用的另一个选项是 poll,但与 select 相比,我不太确定它及其性能。
请建议我解决这种情况的最有效方法。
【问题讨论】:
-
肯定使用 epoll 而不是 select
-
Christian.K 上面提供的链接明确地为这个问题提供了解决方案。
-
在我的程序中我可以重新定义 __FD_SETSIZE 因为 fdset 从系统文件中获取它
标签: c++ c linux linux-kernel socketserver