以我的经验,当所有TCP服务几乎停止的时候,OICQ依然可以运行,但是OICQ只是传递一些很小的数据。我想负载应该不是个问题,设计TCP/UDP时人家已经考虑好了。就照一般的做法,可靠传输用TCP,不可靠传输用UDP。另外我有个想法:省下的带宽不属于你,没必要节约。

解决方案 »

  1.   

    假设有大量连接,而每连接传输的数据量分散,而且少,但又保证传输可靠,是用TCP好,还是用UDP(在UDP上加入3次握手等手段来保证可靠)好,在效率重要的情况下.to zb_china:我只想省下来My Server的内存,CPU,以及带宽
      

  2.   

    我的看法:
        如果客户端少的话,tcp当然好了,如果客户端多,嘿嘿,你建成百上千个连接试试,服务器多半玩完儿,每个连接要消耗系统资源的,不如只建一个udp socket不停的收,另一个socket发,我都是这样做的,效果不错。
        至于CSocket的效率,它是同窗口消息绑在一起了,实质就是WSAAsyncSelect(),两三台机器玩玩儿还行,而且使用简单,开发快。做server就免了吧,窗口消息响应的速度要比系统信号的速度慢几个数量级,数据量大时根本跟不上,还是用重叠i/o或是完成端口吧。