实时数据传输采用UDP好还是TCP好?比如JAVA的服务器不定时的给我这边发数据,我的C++客户端来接收它。这时我是采用TCP来接收好呢还是UDP接收好呢?

解决方案 »

  1.   

    对方是怎么发的,你就怎么接受,对方是tcp,难道你可以用udp接受吗?实时数据的数据量有多大?对准确性由要求吗?
      

  2.   

    简单说来,UDP你需要保证和处理的事情比TCP更多一些,但是UDP的实时性比TCP略胜,你根据你的实际情况选择最适合你的方式和套接字类型,搞清楚你真正的瓶颈什么,不要做提前优化
      

  3.   

    UDP,实时的应该用UDP,效率高一些
      

  4.   

    UDP更快,但容易丢包,TCP更容易当然,JAVA服务器用什么就得用什么,除非java服务器是你可控的
      

  5.   

    我觉得在不考虑可靠性的前提下 还是UDP收吧!看你的需求是什么  是以安全可靠性为主
    还是以快速接受为主了 
    希望楼主解决问题
    期待你撒分
      

  6.   

    视情况而定,如果准确度要求高,流量大,那么就TCP吧
      

  7.   

    实时传输多采用UDP,因为采用TCP进行传输时,由于它是面向连接的可靠性的传输,在传输数据之前,它要求握手确定,从而会影响传输的实时性。而UDP是面向无连接的,不可靠性的传输,但是对于数据量大的实时传输来说,中间丢掉的数据对整体影响很小,但其传输速度很高。
      

  8.   

    RTP(Real-timeTransportProtocol)是用于Internet上针对多媒体数据流的一种传输协议。RTP被定义为在一对一或一对多的传输情况下工作,其目的是提供时间信息和实现流同步。RTP通常使用UDP来传送数据,但RTP也可以在TCP或ATM等其他协议之上工作。
      

  9.   

    C++的话还是UDP好些,毕竟在C++下UDP有很多demo和已经成熟代码,自己工作量会少很多,而且前人的代码和MS的例程都是很优质的
      

  10.   

    UDP会丢包呀。 TCP 好被。
    或者介于两种之间的协议。
      

  11.   

    不经过太多路由 本地网络强调速度 UDP
    经过很多路由  强调安全性TCP
    两者之间UDT
      

  12.   

    如果更看中的是实时性,而不是准确性的的话,当然要选择udp了,tcp的连续性好,但是实时性差。比如视频会议都会选择udp协议来传输,因为视频里丢几帧数据对于整个图像来说没有什么大碍。
      

  13.   


    TCP影响实时性不是因为握手啊。握手一开始建立完就没事了啊....
    千里孤行
      

  14.   

    局域网下,果断用UDP。
    其他情况用UDP的话需要做很多的可靠性工作。
      

  15.   

    TCP更加安全可靠,UDP会丢包,楼上说得不错
      

  16.   

    这个得根据你自己的实际应用了!比如普通的会议视频图像,当然首选UDP,毕竟丢几包无所谓。如果传输文件等,如果丢几包,那....
      

  17.   

    试试AnyChat SDK,可以实现多方的语音、视频、文字的交互:http://www.anychat.cn/faq/