粘包问题:粘的是应用层数据报,导致处理数据的时候,容易堵半个应用层数据报(这是一个凡是面向字节流传输都会遇到的问题)
假设:
在小红的回答中有三个字,这个时候就需要从缓冲区中读取了,但是读的时候一次性读几个数据,这是无法预知的,这就可能会让程序出现歧义(UDP以包为单位,就不存在这样的问题)
那么读取应用层数据就不应该只读半个包,也就是需要通过应用层协议本身来区分包和包的边界,区分方式可以有: 1.使用分隔符:好个p;好个p;… 2.明确包的长度:3 好个p
本文分享自 作者个人站点/博客 前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!