使用tcp或udp进行长连接的开发,哪中效率更高,有什么区别(条件是并发量在5万左右)!!!!!!

解决方案 »

  1.   

    效率是指什么.速度吗?当然UDP好.区别是:
    TCP保证数据顺序和不丢失但是慢.
    UDP有可能丢包,而且不保证数据到达的顺序.如果你的应用允许数据丢失的话,可以用UDP.
    如果你实在觉得TCP慢,可以考虑自己封装UDP来保证数据的顺序和不丢失.当然,这个工程要考虑很多情况.
      

  2.   

    使用tcp或udp进行长连接的开发,哪中效率更高,有什么区别(条件是并发量在5万左右)!!!!!!
    --
    1.udp有连接么?
    2.效率?是服务器的反应速度,还是开发的快慢,还是其他?
    3.并发量在5万左右?要求是单服务器,还是服务器集群?在什么环境下的要求?
      

  3.   

    长连接的话,使用tcp可以省去你去确保数据传输的正确性性能的话,udp高一些,但需要你做很好的传输管理
      

  4.   

    具体情况具体分析,跟你的架构设计有比较大的关系,一般情况下用UDP会好一些
      

  5.   

    如果你的数据很重要的话 那就用TCP 如果你牛的话 能把UDP改造的象TCP那么可靠 那就用UDP 不过这时也就失去了UDP的一个优势--速度
      

  6.   

    UDP如要施现可靠性,效率不一定比TCP高!!!UDP好处在于是非连接的,可以一对多,包阻塞也不会重发,在带宽不够的情况下,重发会消耗更多带宽!!对于视频点播这种,对可靠性要求不高,实时性高的情况,UDP是很适合的,对于要求可靠的连接,UDP在应用层查错,效率不一定会高于TCP,有现成的TCP不用,用UDP是不合算的!
      

  7.   

    cpu速度快的话,UDP要求重传的话,效率一般不如TCP。
      

  8.   

    现状是:真正的项目实施中,如果不是特殊行业,通讯协议的性能差异对效率的影响远远小于其它软件开发因素(比如架构)带来的影响。不必对TCP和UDP哪个效率高斤斤乐道。我们国产软件开发还远没到那个程度。
      

  9.   

    一般来说UDP的效率会高一些 5万的并发量一台2U的及其完全可以实现了。
    而TCP的效率相对低一些 不过TCP能保证数据包的顺序和不丢失。而UDP不行。
    不过你可以自己实现一套UDP协议,来实现同样的功能。另外长连接是指TCP,UDP是数据报协议,没有连接和握手的概念。
      

  10.   

    楼主的这个需求用TCP就可以了,如果技术,人力,资金和时间都充足,可以像QQ一样,自己封装UDP,使它具有TCP的可靠性。
      

  11.   

    windows操作系统处理高并发建议用IOCP
    linux操作系统处理高并发建议用epoll