我无法从其他设备连接到Flask服务器(=不是从localhost)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我无法从其他设备连接到Flask服务器(=不是从localhost)相关的知识,希望对你有一定的参考价值。
我的目标是在python服务器和android(java)客户端之间构建RESTful API通信。
我想从一个客户端开始使用chrome中的URL,然后使用android-java客户端。
我有一个非常简单的Flask服务器:
from flask import Flask
app = Flask(__name__)
@app.route("/RESTfulExample/json/product/get")
def hello():
return "Hello !!"
if __name__ == "__main__":
app.run()
当这是localhost(ip = 127.0.0.1)时,服务器和客户端之间的通信运行良好。
问题是当我从另一台设备运行客户端时(我尝试使用手机和另一台计算机):
from flask import Flask
app = Flask(__name__)
@app.route("/RESTfulExample/json/product/get")
def hello():
return "Hello !!"
if __name__ == "__main__":
#app.run()
app.run(host='10.0.0.54', threaded=True)
当我运行服务器并在chrome URL中输入此URL(http://10.0.0.54:5000//RESTfulExample/json/product/get)时,2-3分钟后它将返回ERR_CONNECTION_TIMED_OUT错误或ERR_ADDRESS_UNREACHABLE错误。
我对这个简单问题的解决方案一无所知。如果有人在这里帮助我,我将很高兴。
提前致谢 !!
请将python脚本中的主机设置为
host='0.0.0.0'
有了它,服务器将侦听所有可用的网络接口。
您还必须分配您的端口(也在python中):
port=5000
请注意,防火墙不会阻止请求。要更改防火墙的行为,您可以使用(在Windows上)集成的防火墙工具。在那里,您还可以轻松地为本地网络中的端口5000启用TCP流量。
有时,您还必须在本地路由器中启用对等流量。
Ps:你的链接中也有两个斜杠
从另一台计算机访问flask应用程序的一种方法是获取主机的IP并在另一台计算机上运行它。
在Windows中,转到cmd
并键入ipconfig
并查找您的计算机ipv4地址例如,192.168.0..
在Linux中,使用ifconfig
。
然后,在另一台机器上,
http://<host_ipaddress>:<port>/<endpoint>
例如,http://10.0.0.4:5000/sample
以上是关于我无法从其他设备连接到Flask服务器(=不是从localhost)的主要内容,如果未能解决你的问题,请参考以下文章
在 dockerized 环境中无法从 Flask 连接到 Kafka
带有mod_wsgi的flask-restless无法连接到MySQL服务器