首页
下载
文档
社区
视频
捐赠
源代码
赞助商
AOT 编译器
AI 助理
商业产品
PHP AOT 原生编译器
Swoole-Compiler 代码加密器
CRMEB 新零售社交电商系统
登录
注册
全部
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
发表新帖
$serv->send()函数,貌似有次数次数限制吗?
因为客户端要做长连接,连续发送信息的时候 $serv->send(26,$pack); $serv->send(26,$pack); $serv->send(26,$pack); $serv->send(26,$pack); $serv->send(26,$pack); 测试的时候,貌似只能收到3条信息?
发布于11年前 · 0 次浏览 · 来自
提问
o
osx
因为客户端要做长连接,连续发送信息的时候 $serv->send(26,$pack); $serv->send(26,$pack); $serv->send(26,$pack); $serv->send(26,$pack); $serv->send(26,$pack); 测试的时候,貌似只能收到3条信息?
赞
0
收藏
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
登录
后参与评论
评论
2015-06-18
w
wang
因为send只是发给操作系统,放到socket缓存区中。真正发到客户端时会合并数据包。 比如你发送了3次,分别是abc/def/ghk。客户端可能只收到一次,数据内容是 abcdefghk。 所以客户端需要做拆包。TCP协议是没有边界的,一定要切记这一点。
赞
0
回复
2015-06-21
林
林寒潮
已经进行排查,注释掉serv->send发送后,直接echo 数据后,发现serv->on('receicve')有有时候进不来
赞
0
回复
2015-06-21
g
g
客户端要使用长连接,服务端socket就没有使用$serv->close();客户端信息到服务端后,只有第一次服务端有接收,并返回serv->send();客户端再次发送信息,服务器就接收不到,serv->on('receicve')这个环节就进不来了!不知道为什么
赞
0
回复
2015-06-23
x
xiaoming
通过抓包和记录log看下通讯的过程,另外是否开启了 swoole的eof_check功能
赞
0
回复