在本地主机上,如何选择一个空闲端口号?
问题内容:
我正在尝试进行进程间通信,并且由于无法弄清楚如何在Windows下使用命名管道,因此我认为我将使用网络套接字。一切都发生在本地。服务器能够在单独的进程中启动从属服务器,并在某些端口上进行侦听。奴隶完成工作并将结果提交给主人。如何确定哪个端口可用?我假设我无法在端口80或21上收听?
我正在使用Python,如果这样做会减少选择的余地。
问题答案:
不要绑定到特定端口。而是绑定到端口0:
sock.bind(('', 0))
然后,操作系统将为您选择一个可用端口。您可以使用来获得选择的端口sock.getsockname()[1]
,并将其传递给从站,以便它们可以重新连接。