首页
下载
文档
问答社区
视频
捐赠
源代码
AI 助理
赞助商
CRMEB
Apipost
腾讯云
微擎
禅道
51Talk
商业产品
Swoole AI 智能文档翻译器
Swoole-Compiler PHP 代码加密器
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,那剩余的空间是不是可以根据自己的要求包头还可以存储其他信息呢 }}}
发布于6年前 · 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
回复
微信公众号
热门内容
暂无回复的问答
- CodeGalaxy K3s 轻量集群节点之间如何实现负载均衡
- 关于openssl CURL WARNING swSSL_connect: SSL_connect(fd=69) failed. Error: error:141A318A:SSL routines:tls_process_ske_dhe:dh key too small[1|394]
- 多个模型如何进行事务异常回退?
- websocket开启wss报错
- 协程tcp服务器如何使用多进程?recv()方法接收信息,打印出来的pid一直是同一个。没用使用到多进程啊。