论坛未找到答案 全都不符合 报错 (通常每个套接字地址(协议/网络地址/端口)只允许使用一次。)

toney99953

问题描述

框架 thinkPHP5.0.24 + workerman + GatewayWorker + gatewayclient
使用AsyncTcpConnection类连接欧易交易所 执行的业务逻辑是每收到一条信息就推送给所有客户端 如图
一共有两个任务 (因为接口不一样 所以启动了两个workerman)
截图

截图

程序代码

GatewayWorker里面没有什么业务代码 只是提供连接  都是通过 gatewayclient推送 下方有截图

报错信息

启动时是没有问题 过两三个小时就会报错以下错误

stream_socket_client(): Unable to connect to tcp://127.0.0.1:2900 (通常每个套接字地址(协议/网络地址/端口)只允许使用一次。) in E:\php\amm\vendor\workerman\gatewayclient\Gateway.php:1254

截图报错信息里报错文件相关代码

截图
截图
截图

操作系统及workerman/webman等框架组件具体版本

windows php8启动脚本
截图

442 2 0
2个回答

yongdao35

猜测是本地端口消耗光了,用linux系统按照手册优化好linux内核应该就好了

  • toney99953 2024-05-27

    我也这样觉得 但是6万多个端口都用完是不是不太合理

toney99953

截图

复现步骤我也不清楚 像是随机出现 有时候运行半个小时就会直接报错 有时候五六个小时才会报错

  • 暂无评论
×
🔝