首页
下载
文档
社区
视频
捐赠
源代码
赞助商
AOT 编译器
AI 助理
商业产品
PHP AOT 原生编译器
Swoole-Compiler 代码加密器
CRMEB 新零售社交电商系统
登录
注册
全部
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
发表新帖
swoole 客户端不断开服务器的连接如何做到?
我目前的代码: ```php $client = new swoole_client(SWOOLE_TCP | SWOOLE_KEEP); if(!$client->connect('127.0.0.1', 9503, 0.5, 0)) { exit("connect failed\n"); } $client->send("I love you"); $data = $client->recv(7000); if($data === false) { echo "recv fail\n"; break; } echo '客户端收到服务端的数据:[' . $data . ']' . PHP_EOL; // $client->close(); ``` 如题,请用实例代码来解答
发布于9年前 · 0 次浏览 · 来自
提问
洪
洪涛
我目前的代码: ```php $client = new swoole_client(SWOOLE_TCP | SWOOLE_KEEP); if(!$client->connect('127.0.0.1', 9503, 0.5, 0)) { exit("connect failed\n"); } $client->send("I love you"); $data = $client->recv(7000); if($data === false) { echo "recv fail\n"; break; } echo '客户端收到服务端的数据:[' . $data . ']' . PHP_EOL; // $client->close(); ``` 如题,请用实例代码来解答
赞
0
收藏
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
登录
后参与评论
评论
2017-05-17
p
panpan
这是由底层Swoole处理的,扩展会保存实际的文件描述符,即使执行了close也不会真的切断连接。当再次执行connect时底层会检测是否存在可复用的连接,如果该连接有效底层不会创建新连接而是直接复用。
赞
0
回复
2017-05-17
L
LauEl
具体解释起来很复杂,底层实现原理是用一个 `hashtable` 存储相关信息,内存是持久分配的,请求销毁时并不释放,下一次请求的时候使用 IP:PORT作为KEY在hashtable查找是否存在可复用的连接。
赞
0
回复
2017-05-17
麻
麻破伦意识
ok明白
赞
0
回复