qq同时在线的用户有时超过150万,一个服务器的端口大概有6万个左右。他是怎么处理用户连接的问题呢?
   我想可能有两种方式:
   1.增加服务器数量,这种方法很笨拙,并且算法也不易写。
   2.所有的连接在建立并取得数据后立即销毁连接,并等待某个时点从新连接。
   3.结合以上两种方式。
   请大家踊跃发言,多多指教。
 呵呵.....

解决方案 »

  1.   

    FAINT
    QQ是UDP协议,无连接的,同时他们确实是采用了增加服务器的方法
    他们服务器之间的通信算法写得很好
      

  2.   

    to snsins(初雪是我的开心果) :
    关于qq服务器之间的通信,你知不知道用的是什么算法?
      

  3.   

    谢谢大家的踊跃发言!
     snsins(初雪是我的开心果) cdutgch(伶狐) 
     如果服务器和客户端是用udp(是无连接的),那么怎么知道客户端是否在线?
      

  4.   

    ahao(天·狼·星星) :
    我不知道
    我有次和他们的一位技术人员在QQ上聊过
    当时我猜测是采用的DNS那种轮询方法
    结果他告诉我说不是。
    QQ难度主要就是在服务器端的效率以及服务器与服务器之间的通信,客户端只要有了协议就很好写了schuyler(乐开) :
    至于是否知道客户在线,可能是由客户端定时给服务器发送消息(也可能是服务器定时查询客户端),然后根据是否响应来判断的,这个不难
      

  5.   

    当时那个人说,他们的服务器很多都是PII兼容机(是一年多前,差不多两年了,现在有钱了估计换了),由此可见他们的服务器端算法很牛
      

  6.   

    我最想知道的是他们是如何把UDP用好的
    我也写过UDP形式的通讯软件,但是丢包严重,一个包有时候会重传好多遍,这样效率就低了。