Mar*_*ars 8 sockets network-programming d
我正在为在线游戏编写服务器,最终应该能够处理1,000-2,000个客户端.我发现这样做的3种方法基本上是:
在过去,我使用过1,但众所周知,它不能很好地扩展.2是可以的,但我有一种复杂的感觉,关于一个客户在技术上能够让其他人冻结.3听起来很有趣(比2好一点),但我听说它不适合太多连接.那么,最好的方法是什么(在D中)?还有其他选择吗?
通常的做法是最接近3:异步编程与性能更高的select
替代方案,如poll
或epoll
系统调用在Linux上,IOCP在Windows,或更高级别的库包装他们.D不直接支持它们,但您可以找到D绑定或第三方D库(例如Tango)为它们提供支持.
性能更高的服务器(例如nginx)每个CPU核心使用一个线程/进程,并在该线程/进程中使用异步事件处理.
归档时间: |
|
查看次数: |
438 次 |
最近记录: |