情況是這樣的。
我是用Webman框架寫了一個(gè)API接口,負(fù)責(zé)接收數(shù)據(jù),然后存庫。項(xiàng)目部署在Linux上。
我寫了一個(gè)fake_data.php 用來生成假數(shù)據(jù)(循環(huán)10000次),通過curl 來向 這個(gè)API接口推送數(shù)據(jù)。
當(dāng)我在本地啟動(dòng)一個(gè)terminal,執(zhí)行php fake_data.php 時(shí),一切正常。
當(dāng)我同時(shí)啟動(dòng)兩個(gè)terminal時(shí),API接口就會(huì)頻繁返回:
Failed to connect to 172.16.0.26 port 8787: Address already in use
錯(cuò)誤信息。
我不理解這是怎么回事,還請(qǐng)各位幫忙解答下。非常感謝。
相關(guān)圖片:
按照這位朋友的建議,修改了程序,就沒有報(bào)這個(gè)問題了:
謝謝各位。
提示寫的很清楚了,端口被占用了。
你好,根據(jù)描述信息,我知道端口被占用。可是我有點(diǎn)不理解,這個(gè)端口被占用,難道只是我啟動(dòng)了2個(gè)或多個(gè)terminal同時(shí)推送的原因嗎?還是說只能啟動(dòng)一個(gè)terminal來推送。
關(guān)于這塊兒,是不是有什么我不了解的地方。還請(qǐng)不吝賜教。謝謝。
同協(xié)議下,一個(gè)端口只能被一個(gè)進(jìn)程監(jiān)聽(該進(jìn)程fork出來的不算),除非聲明reuseport,所以你現(xiàn)在是兩個(gè)進(jìn)程(terminal1和terminal2)監(jiān)聽同一個(gè)協(xié)議(TCP)下的端口
你好,我這邊又測(cè)試了一下,開啟一個(gè)terminal,for循環(huán)調(diào)用10000次接口,在即將調(diào)用結(jié)束的后半部分,還是出現(xiàn)了這個(gè) Failed to connect to 172.16.0.26 port 8787: Address already in use 這個(gè)信息。很是疑惑。
麻煩問一下,各位在項(xiàng)目中有沒有遇到這種情況。