我正在设计一个新服务器,它需要支持数千个UDP连接(大约100,000个会话)。有哪些输入或建议可供使用?
答案 0 :(得分:44)
如果您正在使用Linux,那么答案就是epoll,如果您使用的是FreeBSD或Mac OS X,那么答案就是epque;如果您使用的话,那么答案就是i / o完成端口。
您(几乎肯定)想要研究的其他一些事情是:
此外,注意UDP没有“连接”而不是TCP,这是重要。调试基于网络的解决方案可能具有挑战性,因此从小规模开始并扩大规模也符合您的最佳利益。
答案 1 :(得分:40)
CURL的作者写了一篇关于 poll vs select vs event libraries 的精彩文章。
答案 2 :(得分:18)
Linux:epoll
FreeBSD:kqueue
Windows:??
有一些包装库,例如libevent和libev,它们可以为你抽象。