首页
下载
文档
社区
视频
捐赠
源代码
赞助商
AOT 编译器
AI 助理
商业产品
PHP AOT 原生编译器
Swoole-Compiler 代码加密器
CRMEB 新零售社交电商系统
登录
注册
全部
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
发表新帖
手机段收到的数据粘包而不是服务器端
服务器端 $serv->send( “{json1}” ); $serv->send(”{$json2}“); 服务器端向客户端发送了两个json字符串结果 客户端收到的是 ”{$json1}{$json2}“ 这样一个字符串 希望是是收到“{json1}” , “{json2}” 两个json字符串
发布于8年前 · 1 次浏览 · 来自
提问
n
nihao
服务器端 $serv->send( “{json1}” ); $serv->send(”{$json2}“); 服务器端向客户端发送了两个json字符串结果 客户端收到的是 ”{$json1}{$json2}“ 这样一个字符串 希望是是收到“{json1}” , “{json2}” 两个json字符串
赞
0
收藏
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
登录
后参与评论
评论
2018-02-12
s
sahdaisada
手机端用的apicloud的socketManager模块收发数据 服务器端用的swoole_server;
赞
0
回复
2018-02-14
L
Larry
2次send tcp底层可能何必为一次发送。这个不能控制。客户端收到的是 ”{$json1}{$json2}“ ,需要客服端自行拆包。不管是客服端还是服务端,都需要检查包的完整性(开始,结束)。
赞
0
回复
2018-02-15
T
Taylor
参考: http://wiki.swoole.com/wiki/page/285.html http://wiki.swoole.com/wiki/page/224.html
赞
0
回复
2018-02-17
a
admin
你需要去了解tcp的拆包与合包, TCP协议是流式的,数据包没有边界, 可能一次收到多个包,也可能只收到数据包的一部分
赞
0
回复
2018-02-17
小
小点
搜索 socket 粘包
赞
0
回复
2018-02-17
c
chunsing
开启swoole的分包策略
赞
0
回复
2019-02-10
呼
呼吸的悲剧
swoole不是提供了两种分包策略吗,eof协议和固定包头+包体协议,第二种是一些大公司的常用的分包策略。
赞
0
回复