粘包原因:半包原因:根本原因:解决问题的根本手段:找出消息边界: 粘包原因: 发送方每次写入数据<套接字缓冲区大小接收方读取数据不及时 半包原因: 发送方写入数据>套接字缓冲区大小发送的数据大于协议的MTU(最大传输单元),必须拆包 根本原因:TCP是流式协议,消息无边界 解决问题的根本手段:找出消息边界:封装成帧 固定长度 — 空间浪费 — 不推荐分隔符 — 空间不浪费 — 内容本身出现分隔符时需转义 — 推荐固定长度字段存内容的长度信息 — 精确定位用户数据,内容不用转义 — 推荐