同一台机器上的两个应用程序可以绑定到相同的端口和IP地址吗?更进一步,一个应用程序可以侦听来自某个 IP 的请求,而另一个应用程序侦听来自另一个远程 IP 的请求吗?
我知道我可以让一个应用程序启动两个线程(或分叉)以具有类似的行为,但是两个没有任何共同点的应用程序可以做同样的事情吗?
答案因所考虑的操作系统而异。但总的来说:
对于 TCP,没有。您一次只能让一个应用程序侦听同一端口。现在,如果您有 2 个网卡,您可以让一个应用程序使用相同的端口号侦听第一个 IP,让第二个应用程序侦听第二个 IP。
对于 UDP(多播),多个应用程序可以订阅同一端口。
编辑:从 Linux Kernel 3.9 及更高版本开始,使用以下命令添加了对侦听同一端口的多个应用程序的支持SO_REUSEPORT
选项。更多信息请访问这篇 lwn.net 文章。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)