我正在尝试使用进程间通信,因为我不知道如何在 Windows 下使用命名管道,所以我想我会使用网络套接字。一切都发生在本地。服务器能够在单独的进程中启动从属服务器并监听某个端口。奴隶做他们的工作并将结果提交给主人。我如何确定哪个端口可用?我假设我无法监听 80 或 21 端口?
我正在使用 Python,如果这样可以减少选择。
最佳答案
不要绑定(bind)到特定端口。相反,绑定(bind)到端口 0:
import socket
sock = socket.socket()
sock.bind(('', 0))
sock.getsockname()[1]
然后操作系统会为您选择一个可用的端口。您可以使用 sock.getsockname()[1]
获取选择的端口,并将其传递给从站,以便它们可以连接回来。
sock
是您创建的套接字,由 socket.socket
返回。
https://stackoverflow.com/questions/1365265/