04 TCP粘包问题原因及解决

day04

本章目标

  • 流协议与粘包:**TCP是字节流协议会导致粘包问题的出现**
  • 粘包产生的原因
  • 粘包处理方案
  • readnwriten
  • 回射客户/服务器

TCP是字节流传输,信息无边界。

UDP是消息传输,传输的是报文,是具有边界的。

粘包解决方案

  • 本质上是要在应用层维护消息与消息的边界
    • 定包长
    • 包尾加\r\n(ftp协议处理方法)
    • 包头加上包体长度
    • 更复杂的应用层协议

readn 和writen函数

自定义通信协议,即为自定义数据包结构。

  • readn 接收确切数目的读操作
  • write发送确切数目的写操作