服务端怎么写,可同时连接几十万人?(100)

  • 主题发起人 主题发起人 z1909680
  • 开始时间 开始时间
Z

z1909680

Unregistered / Unconfirmed
GUEST, unregistred user!
谁能说说酷狗(Kugoo)的模式,是怎么架构的?服务端怎么写,可同时连接几十万人?
 
socket连接的port是WORD, high(WORD)=$FFFF,你觉得可能吗
 
多台服务器+完成端口,本BBS上例子有的,或者到Delphi盒子里面下载!
 
如果是 Linux ,可以用c,java,异步 windows 完成端口多要做粘包处理
 
估计人家用的是服务器群吧不然单服务器玩不转的
 
肯定是服务器集群,通过高性能路由器转发的。
 
Kugoo的单服务端就已经可以支持到几十万人了..但也没有大家想的这么复杂也没有什么高超的技术....
 
用TCP是不可能做到几十万并发连接的,即使用异步连接也不行。主要原因是因为每个保持连接的TCP都需要一个计时器,操作系统需要轮询刷新这些计时器。不断轮询这些TCP连接很费时,所以操作系统一般只能同时支持几千个计时器。如果想在TCP上做到单机每秒几十万连接,必须用高端的Unix小型机柜,一个机柜8到16个主机,每个主机4个CPU,运行在cluster 4以上的并行处理模式。这样整个机柜对外只是一台主机,客户端编程变化也不大。如果用udp方式,那么做到每秒几十万连接就很简单。我曾经用ACE库在一台5年前的单CPU笔记本电脑上,基于Windows 2000做到每秒10万连接。我试过自己直接用windows socket,效率还不如ACE。毕竟ACE底层关键部分还是用汇编的!udp最大的问题就是不能发超过1.4K的包,如果超过了你就必须自己封装。我试过自己封装,效率还不如TCP,因为自己封装的代码是工作在用户层,不是内置在系统核心。用UDP实现基于TCP的连接,每秒理论速率只能传送240k,实际做到180k以上就不错了。TCP就没这个限制,再多也可以。
 
site1001 用UDP做TCP的处理方式....TCP本身也不是单纯的一发一确认的效率,而是使用滑动窗口的机制。UDP做TCP的处理方式,并没有像你所说的那么慢。具体情况是根据带宽以及设定滑动窗口的机制的问题,就算完全仿TCP的滑动机制,局域网也是能够达到9M...在Internet的环境,从服务器上拿数据,也能达到400K左右.
 
这个没有什么呀 只要家个分布系统 以前做棋牌游戏 比较简单的 这个
 
多人接受答案了。
 
后退
顶部