Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我在 C/Linux 中实现了一个使用 TCP 套接字的聊天服务器。它当前使用单个进程并使用 select() 来防止服务器阻塞。我读过 select() 是一种非常慢的方法,我希望将服务器升级到更高效的版本。
我目前正在研究 libevent,但我希望在设计快速服务器代码方面有经验的人能给我一些关于可用的最快技术的一些指示。libevent 是一个可靠的选择还是我应该研究一些更好的东西?
我真的很感激任何帮助!
对于 Linux(仅限),您可以使用 epoll,它在大多数情况下(但不是全部)更快。
epoll 的主要缺点是它仅在 Linux 操作系统上受支持(不可移植)。
总结一下,epoll 可以监控非常多的描述符,并且会返回一个仅包含更改的列表(无需传递所有原始描述符列表)。