出现黏包的原因:
tcp连接,发送消息的时候才有可能出,udp不会出(udp如果本次发送的消息大于接收端接收的最大长度限制,剩余的直接丢弃。。好残忍)
出现的两个原因:
发送的多个消息间隔太短数据小,被当成一个数据包发送出去;
发送的数据包过大,对方接收的比较小,剩余的内容混在下一个消息发送过来;
解决方法:
发送数据前,先发送数据的长度;接收端接收数据时计算长度,直到接收完全部文件为止;
顺便想到,发送数据的时候,其实是发送了文件哈希的,然后接收完之后,在验证文件哈希对不对;