黏包-解决方法

出现黏包的原因:

  tcp连接,发送消息的时候才有可能出,udp不会出(udp如果本次发送的消息大于接收端接收的最大长度限制,剩余的直接丢弃。。好残忍)

  

  出现的两个原因:

     发送的多个消息间隔太短数据小,被当成一个数据包发送出去;

     发送的数据包过大,对方接收的比较小,剩余的内容混在下一个消息发送过来;

  解决方法:

    发送数据前,先发送数据的长度;接收端接收数据时计算长度,直到接收完全部文件为止;

顺便想到,发送数据的时候,其实是发送了文件哈希的,然后接收完之后,在验证文件哈希对不对;

原文地址:https://www.cnblogs.com/chenadong/p/9665768.html