浅谈TCP和UDP协议的区别

**传输模式**

TCP协议:数据流(DataStream)
    --没有消息边界,比如服务端给客户端发来2048字节大小的数据,而客户端设置的一次最大接收大小为1024,这时候就意味着还有1024没能接收过来,要再接收一次。
      所以容易出现粘包的情况。所谓粘包,就是数据都粘在一起了。


UDP协议:数据报(DataGram)
    --永远不会存在粘包现象,因为UDP数据存在消息边界,在其报文头里包含有客户端的IP地址和端口这样的信息,还以上面的例子举例:
      比如服务端给客户端发来2048字节大小的数据,而客户端设置的一次最大接收大小为1024,这时候就意味着还有1024没能接收过来,此时剩下的内容客户端再也接收不过来了,
      因为UDP认为已经发送结束了。

所以说啊,一般都用TCP协议,因为可靠。UDP协议是一种不可靠的协议,容易丢包。

posted @ 2024-08-22 14:29  疯狂Python  阅读(16)  评论(0)    收藏  举报