首页
下载
文档
社区
视频
捐赠
源代码
赞助商
AOT 编译器
AI 助理
商业产品
PHP AOT 原生编译器
Swoole-Compiler 代码加密器
CRMEB 新零售社交电商系统
登录
注册
全部
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
发表新帖
固定包头+包体协议自动分包
固定包头+包体协议自动分包文档中看到有关分包的设置,有个疑问 > package_length_type => 'N' 长度字段的类型,固定包头中用一个4字节或2字节表示包体长度。类型是一个字符,详情参见php的pack函数文档 比较常用的类型为: N 4字节网络字节序,最大为2^32 n 2字节网络字节序,最大为65536 > package_length_offset => 10> 从第几个字节开始是长度,比如包头长度为120字节,第10个字节为长度值,这里填入10 > package_body_offset => 120 从第几个字节开始计算长度,比如包头为长度为120字节,第10个字节为长度值,包体长度为1000。如果长度包含包头,这里填入0,如果不包含包头,这里填入120 > package_max_length => 800000 最大允许的包长度。因为在一个请求包完整接收前,需要将所有数据保存在内存中,所以需要做保护。避免内存占用过大。 {{{ 包头长度这个能不能指定,怎么指定?文中提到的,package_length_offset => 10 比如包头长度为120字节,第10个字节为长度值,这里填入10, 假如我就设置包头长度120,那这个怎么设置呢,还有就是我的理解,比如我设置package_length_type='N', 长度 4字节, 包头总长120,那剩余的空间是不是可以根据自己的要求包头还可以存储其他信息呢 }}}
发布于8年前 · 3 次浏览 · 来自
提问
s
sufang
固定包头+包体协议自动分包文档中看到有关分包的设置,有个疑问 > package_length_type => 'N' 长度字段的类型,固定包头中用一个4字节或2字节表示包体长度。类型是一个字符,详情参见php的pack函数文档 比较常用的类型为: N 4字节网络字节序,最大为2^32 n 2字节网络字节序,最大为65536 > package_length_offset => 10> 从第几个字节开始是长度,比如包头长度为120字节,第10个字节为长度值,这里填入10 > package_body_offset => 120 从第几个字节开始计算长度,比如包头为长度为120字节,第10个字节为长度值,包体长度为1000。如果长度包含包头,这里填入0,如果不包含包头,这里填入120 > package_max_length => 800000 最大允许的包长度。因为在一个请求包完整接收前,需要将所有数据保存在内存中,所以需要做保护。避免内存占用过大。 {{{ 包头长度这个能不能指定,怎么指定?文中提到的,package_length_offset => 10 比如包头长度为120字节,第10个字节为长度值,这里填入10, 假如我就设置包头长度120,那这个怎么设置呢,还有就是我的理解,比如我设置package_length_type='N', 长度 4字节, 包头总长120,那剩余的空间是不是可以根据自己的要求包头还可以存储其他信息呢 }}}
赞
0
收藏
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
登录
后参与评论
评论
2018-01-12
惠
惠辽宁
package_body_offset 就是包头长度呀
赞
0
回复