首部五个字节网络字节序pack的int+json数据格式

为什么我把 首部四个字节 改成五个字节或者其他长度字节,就一直无法返回正确结果?只能用4个字符?求大大解答
已邀请:

3p大法好 - LNMP爱好者

赞同来自:

public function dealInput($recv_buffer){
// 接收到的数据长度
$recv_len = strlen($recv_buffer);
// 如果接收的长度还不够四字节,那么要等够四字节才能解包到请求长度
if($recv_len < 4)
{
// 不够四字节,等够四字节
return 4 - $recv_len;
....省略

public function dealProcess($buff){
// 去掉首部四个字节,得到完整json字符串
$json_str = substr($buff, 4);
....省略

这里我只是将客户端和服务端的4 改成了5 或者其他数字 就无法响应

walkor

赞同来自:

一个int类型占用内存为4字节,是固定不变的

3p大法好 - LNMP爱好者

赞同来自:

那能否改成接收string类型的首部,我现在是不理解为何只能接收4字节int类型 文档上也没看到说明,可能我看的不仔细吧,请告知谢谢!

walkor

赞同来自:

协议可以按照自己的需求定制,当然可以string类型的头部。
你看的是workerman2.x,建议使用workerman3.x,并参考3.x手册协议定制部分

3p大法好 - LNMP爱好者

赞同来自:

谢谢~~。。这就去看

要回复问题请先登录注册