情況是這樣的。
我是用Webman框架寫(xiě)了一個(gè)API接口,負(fù)責(zé)接收數(shù)據(jù),然后存庫(kù)。項(xiàng)目部署在Linux上。
我寫(xiě)了一個(gè)fake_data.php 用來(lái)生成假數(shù)據(jù)(循環(huán)10000次),通過(guò)curl 來(lái)向 這個(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)圖片:
按照這位朋友的建議,修改了程序,就沒(méi)有報(bào)這個(gè)問(wèn)題了:
謝謝各位。
提示寫(xiě)的很清楚了,端口被占用了。
你好,根據(jù)描述信息,我知道端口被占用??墒俏矣悬c(diǎn)不理解,這個(gè)端口被占用,難道只是我啟動(dòng)了2個(gè)或多個(gè)terminal同時(shí)推送的原因嗎?還是說(shuō)只能啟動(dòng)一個(gè)terminal來(lái)推送。
關(guān)于這塊兒,是不是有什么我不了解的地方。還請(qǐng)不吝賜教。謝謝。
同協(xié)議下,一個(gè)端口只能被一個(gè)進(jìn)程監(jiān)聽(tīng)(該進(jìn)程fork出來(lái)的不算),除非聲明reuseport,所以你現(xiàn)在是兩個(gè)進(jìn)程(terminal1和terminal2)監(jiān)聽(tīng)同一個(gè)協(xié)議(TCP)下的端口
你好,我這邊又測(cè)試了一下,開(kāi)啟一個(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è)信息。很是疑惑。
麻煩問(wèn)一下,各位在項(xiàng)目中有沒(méi)有遇到這種情況。