回答
是的,它是非常可能的多個進程使用fork()偵聽相同的端口。
事實上,當需要接收來自大量客戶端的消息時,大多數Web服務器都使用它來提高性能。
只需創建監聽程序&即可分叉進程。現在所有進程都將在同一個端口上進行偵聽。現在,他們如何將傳入的請求彼此分開完全取決於操作系統,就像在Solaris中一樣,請求按循環方式在進程間分配。
但是對於您的場景,您可以使用套接字複用(select())來獲得所需的結果。
要知道一個事實,即'接受()'可能會失敗! – 2014-10-19 17:42:31
何時以及如何接受可以失敗的朋友.....我已經使用了他們多次。接受我從未失敗。 Yup select可以超時但這不是問題。 – Khanjarrr 2014-10-19 18:39:19
從技術上講,read-ready通知會同時到達兩個進程,但只有一個套接字會被accept()編輯,讓另一個套接字得到一個錯誤代碼「EAGAIN」。 該評論更上面作爲OP的說明:) – 2014-10-19 19:32:45
- 1. 上偵聽UDP套接字
- 2. 多UDP套接字偵聽同一端口上的特定源
- 3. 允許多個套接字在同一端口上偵聽有什麼好處?
- 4. 在多個進程之間協調對共享偵聽套接字的接受
- 5. Linux服務在多個套接字上偵聽
- 6. 偵聽多個套接字:選擇與多線程
- 7. Android多播套接字停止偵聽
- 8. 一個偵聽套接字必須在線程中運行嗎?
- 9. 清漆在同一接口上偵聽多個IPv6地址
- 10. 共享偵聽套接字的多個進程:當新進程進入時,爲什麼舊進程停止?
- 11. 創建兩個線程同時偵聽兩個套接字連接。
- 12. 偵聽套接字連接,而不接受在Linux上調用
- 13. 在多個套接字(InputStreamReader)上進行監聽
- 14. C:pthread無法在套接字上偵聽,綁定和接受
- 15. 單獨線程上的異步套接字偵聽器 - VB.net
- 16. TCP偵聽套接字未被創建
- 17. 試圖啓動偵聽器套接字
- 18. 調查TCP套接字空閒偵聽
- 19. 偵聽所有內容的套接字
- 20. 如何驗證套接字偵聽器?
- 21. OpenOffice,偵聽套接字(Windows XP)
- 22. 我可以對多個偵聽套接字使用相同的boost :: asio :: io_service嗎?
- 23. epoll會通知所有進程在同一個fd上偵聽嗎?
- 24. 爲什麼在多線程服務器中重複(2)偵聽套接字?
- 25. Socket.io在多個端口上偵聽?
- 26. 一個偵聽套接字請求的EAR(Java EE)應用程序
- 27. Oracle在遠程連接上更改端口進行偵聽
- 28. 如何偵聽高編號端口上的套接字
- 29. 原生TCP偵聽雲或Web服務器上的套接字
- 30. 在套接字偵聽器服務器之間建立連接
我認爲[這個答案] [1]應該涵蓋你的大部分問題。 [1]:http://stackoverflow.com/a/670897/2346527 – 2014-10-17 12:48:38