【发布时间】:2021-12-14 19:58:09
【问题描述】:
我想在一个临时端口上运行一个 Web 服务器,并以某种方式保存它的编号。我决定这样做:
from flask import Flask
import socket
app = Flask(__name__)
def find_free_port():
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.bind(("0.0.0.0", 0))
port = sock.getsockname()[1]
sock.close()
return port
@app.route("/")
def home():
return "Hello, World!"
if __name__ == "__main__":
app.run(host="0.0.0.0", port=find_free_port())
在我的个人电脑上,我可以同时查询localhost 和0.0.0.0,但是有一台机器不工作,我收到了
curl: (7) Failed connect to localhost:<port_number>; Connection refused
可能是什么原因?当我使用localhost 作为接口而不是绑定到所有接口时,问题就消失了
【问题讨论】: