I am designing a new server which needs to support thousands of UDP connections (somewhere around 100,000 sessions). Any input or suggestions on which one to use?
问问题
54789 次
3 回答
46
如果你使用 Linux,答案是 epoll,如果你使用 FreeBSD 或 Mac OS X,答案是 kqueue,如果你在 Windows 上,答案是 i/o 完成端口。
您(几乎可以肯定)想要研究的其他一些事情是:
- 负载平衡技术
- 多线程网络
- 数据库架构
- 完美的哈希表
此外,重要的是要注意,与 TCP 相比,UDP 没有“连接”。由于调试基于网络的解决方案可能具有挑战性,因此从小处着手并扩大规模也符合您的最大利益。
于 2010-11-05T21:58:06.123 回答
43
CURL 的作者写了一篇关于poll vs select vs 事件库的精彩文章。
于 2011-12-30T01:18:13.800 回答
18
Linux:epoll
FreeBSD:kqueue
Windows:??
有一些包装库,例如 libevent 和 libev,可以为您抽象这个。
于 2010-10-28T04:48:44.400 回答