在做一个聊天程序,昨天用UDP在局域网测试了下,发现有时候些信息发送出去了但是对方接收不到,在网上看了很多信息都说:当程序需要分清服务器和客户机的时候,最好使用TCP协议,而UDP一般是在主次不是分的很清楚(即关系平等)的时候用到。有些还说最好使用TCP3次握手+UDP心跳包结合起来使用我知道QQ的信息都是通过服务端转发的,但是视频 语音 文件等传输是用UDP还是TCP呢 怎么实现呢?还是要经过服务端吗?应该不会吧!

解决方案 »

  1.   

    用UDP ,tcp链接大量占用网络资源,可能导致网络不畅。
      

  2.   

    用UDP可能回造成数据丢失吧,建议先判断网络状态再确定用哪种传输方式。
      

  3.   

    2楼如果不用TCP或者UDP那用什么?
    3楼如何判断网络状态?
      

  4.   

    UDP的话还能留言,多好啊。呵呵,不过不稳定,容易丢失数据。
      

  5.   

    QQ是客户端UDP点对点通信的,用TCP以辅助算法实现包重传机制以保证信息不丢失......只有在客户端不能直接传递时才通过服务器转发...
      

  6.   

    UDP是面向无连接的服务
    TCP是面向有连接的服务
      

  7.   

    普通的聊天程序UDP就可以了。
      

  8.   

    qq的信息传输方法非常的复杂,不是单纯的tcp,udp。如果lz是在局域网中小范围用的话,udp或者tcp就无所谓了。
    如果做广域的,我觉得你的能力还欠缺,当然,试一试也无妨。
    不过涉及到了很多的知识,例如防火墙的穿透等等。
      

  9.   

    如果是一般的局域网的话用UDP就可以了,丢失几乎不存在的,即使存在也没有太大的影响
    如果还有数据的传送或者其他的用TCP好了
    建议看看TCP和UDP相关的网络书