情况是这样的。
我是用Webman框架写了一个API接口,负责接收数据,然后存库。项目部署在Linux上。
我写了一个fake_data.php 用来生成假数据(循环10000次),通过curl 来向 这个API接口推送数据。
当我在本地启动一个terminal,执行php fake_data.php 时,一切正常。
当我同时启动两个terminal时,API接口就会频繁返回:
Failed to connect to 172.16.0.26 port 8787: Address already in use
错误信息。
我不理解这是怎么回事,还请各位帮忙解答下。非常感谢。
相关图片:
按照这位朋友的建议,修改了程序,就没有报这个问题了:
谢谢各位。
提示写的很清楚了,端口被占用了。
你好,根据描述信息,我知道端口被占用。可是我有点不理解,这个端口被占用,难道只是我启动了2个或多个terminal同时推送的原因吗?还是说只能启动一个terminal来推送。
关于这块儿,是不是有什么我不了解的地方。还请不吝赐教。谢谢。
同协议下,一个端口只能被一个进程监听(该进程fork出来的不算),除非声明reuseport,所以你现在是两个进程(terminal1和terminal2)监听同一个协议(TCP)下的端口
你好,我这边又测试了一下,开启一个terminal,for循环调用10000次接口,在即将调用结束的后半部分,还是出现了这个 Failed to connect to 172.16.0.26 port 8787: Address already in use 这个信息。很是疑惑。
麻烦问一下,各位在项目中有没有遇到这种情况。
问题解决了。是我curl 封装的问题。
你得找出具体哪行报错,才好定位
问题解决了。是我curl 封装的问题。谢谢。