
Swoole发包(pack)到服务端数据长度不一致问题解决
由于长度不一致,导致判断内容是否完整失效(没有主动关闭)而连接超时失败(造成这种现象要你的数据包够长服务端会分段获取内容).下面这段代码是客户的事例:
下面是服务端代码:
执行结果:
客户端:
服务端:
可以看到数据大小为2W字节, 但是服务器拼接大小后只有19992字节了.
开启以下代码:
意思是设置长度检查,长度开始位置,长度偏移量为4个字节,我们N为整型4个字节.
设置之后的结果:
数据是一次性接收完整.
由于长度不一致,导致判断内容是否完整失效(没有主动关闭)而连接超时失败(造成这种现象要你的数据包够长服务端会分段获取内容).下面这段代码是客户的事例:
下面是服务端代码:
执行结果:
客户端:
服务端:
可以看到数据大小为2W字节, 但是服务器拼接大小后只有19992字节了.
开启以下代码:
意思是设置长度检查,长度开始位置,长度偏移量为4个字节,我们N为整型4个字节.
设置之后的结果:
数据是一次性接收完整.