swoole如何解决TCP粘包问题?
网友回复
一、什么是粘包
TCP是字节流协议,数据传输像流水一样。数据发送者会存在一个发送缓冲区,每次可能会将多个数据包一次性发送出去,也可能是一个数据包拆分多次发出去;如果协议没有约定好分隔符或者不明确数据包大小边界,接收者就无法获取并正确解析数据包了,这就是常说的 粘包,下面结合swoole_server和自定义协议来详细说明。二、 常见的自定义协议
1. 固定包大小
发送者和接收者约定数据包长度,适合需求较简单,消息类型固定的情况,灵活性很差。2. EOF结束符
发送者和接收者约定数据包已一个特殊的结束符(EOF)做结尾。适合协议相对简单的需求,常...点击查看剩余70%