python - 在 localhost 上,我如何选择一个空闲端口号?

我正在尝试使用进程间通信,因为我不知道如何在 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/

相关文章:

python - 两个长度不等的列表之间的排列

python - Python 2和3之间numpy数组的pickle不兼容

python - 如何在 Python 中设计一个类?

python - 为什么不自动调用父类(super class) __init__ 方法?

python - Django admin 中同一模型的多个 ModelAdmins/ View

Python 风格 - 用字符串续行?

linux - 在 grep 中转义双引号

linux - 可能有多少个套接字连接?

linux - SVN中结帐和导出的区别

linux - linux命令末尾的 "&"是什么意思?