我想在 Python 中的本地主机上获得任何随机打开的 TCP 端口。最简单的方法是什么?
原文由 Albert 发布,翻译遵循 CC BY-SA 4.0 许可协议
可以通过将套接字绑定到操作系统选择的端口来找到空闲端口。操作系统选择一个端口后,就可以处理套接字。但是,此解决方案无法抵抗竞争条件——在获取空闲端口号和使用此端口之间的短时间内,其他进程可能会使用此端口。
import socket
def find_free_port():
with socket.socket() as s:
s.bind(('', 0)) # Bind to a free port provided by the host.
return s.getsockname()[1] # Return the port number assigned.
https://godbolt.org/z/fs13K13dG
原文由 Paweł Bylica 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答5.2k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
2 回答884 阅读✓ 已解决
1 回答1.8k 阅读✓ 已解决
我目前的解决方案:
不是很好,也不是 100% 正确,但它现在有效。