回答
是的,它是非常可能的多个进程使用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. 允许多个套接字在同一端口上侦听有什么好处?
- 6. 监听套接字只侦听一次
- 7. 在多个进程之间协调对共享侦听套接字的接受
- 8. 使用BINDTODEVICE时无法在多个套接字上侦听?
- 9. Linux服务在多个套接字上侦听
- 10. 侦听多个套接字:选择与多线程
- 11. 在侦听套接字上的Listening套接字上接受连接(并且不再侦听)?
- 12. Android多播套接字停止侦听
- 13. 一个侦听套接字必须在线程中运行吗?
- 14. Linux套接字终止侦听线程
- 15. MultiSocket侦听Linux套接字编程
- 16. 清漆在同一接口上侦听多个IPv6地址
- 17. 共享侦听套接字的多个进程:当新进程进入时,为什么旧进程停止?
- 18. 创建两个线程同时侦听两个套接字连接。
- 19. 侦听套接字连接,而不接受在Linux上调用
- 20. 在多个套接字(InputStreamReader)上进行监听
- 21. C:pthread无法在套接字上侦听,绑定和接受
- 22. 单独线程上的异步套接字侦听器 - VB.net
- 23. Java套接字问题,不会侦听多个数据报包
- 24. Python套接字服务器:侦听多个客户端
- 25. 调查TCP套接字空闲侦听
- 26. 试图启动侦听器套接字
- 27. 侦听套接字超时(Windows)
- 28. 侦听所有内容的套接字
- 29. Android - 不断侦听UDP套接字
- 30. Java TCP套接字侦听器
我认为[这个答案] [1]应该涵盖你的大部分问题。 [1]:http://stackoverflow.com/a/670897/2346527 – 2014-10-17 12:48:38