安卓端Chaquopy Python节点连接外部服务器报111连接拒绝问题
Chaquopy连接服务器报错ConnectionRefusedError解决方案
核心报错原因
127.0.0.1为本地回环地址,只会指向当前运行代码的设备本身,你的配置存在两处问题:
- 服务器绑定
127.0.0.1时,仅允许同一台设备上的程序访问该服务,外部安卓设备/模拟器无法连接 - 安卓端Chaquopy运行环境中访问
127.0.0.1,会尝试连接安卓设备自身的8000端口,而非你部署服务的电脑端口,因此触发连接拒绝
修复步骤
1. 修改服务器绑定地址
将服务器代码中绑定地址改为允许外部访问的配置:
# 原错误配置 # ADR = ("127.0.0.1", PORT) # 替换为以下二选一即可 # 方案1:绑定所有网卡,允许所有网段设备访问 ADR = ("0.0.0.0", PORT) # 方案2:绑定服务器所在电脑的局域网真实IP(可通过Windows的ipconfig、Mac/Linux的ifconfig查询) # ADR = ("192.168.x.xxx", PORT)
2. 修改安卓端节点连接地址
将节点代码中的连接地址改为服务器所在设备的局域网IP:
# 原错误配置 # ADR = ("127.0.0.1", PORT) # 替换为服务器的真实局域网IP,比如192.168.1.102 ADR = ("你的服务器局域网IP", PORT)
如果使用安卓模拟器测试,也可以填模拟器专属的宿主机映射地址10.0.2.2指向电脑本地。
3. 其他必要配置检查
- 确认安卓设备/模拟器与服务器所在电脑处于同一局域网,无网段隔离
- 关闭服务器电脑的系统防火墙,或者放行8000端口的入站访问规则
- 安卓应用必须添加网络权限,在项目的
AndroidManifest.xml中加入以下配置:
<uses-permission android:name="android.permission.INTERNET" />
4. 验证测试
修改完成后,可先通过手机浏览器、telnet工具尝试访问服务器IP:8000,确认端口可正常连通后再运行安卓端代码。
内容的提问来源于stack exchange,提问作者Azzou Groun
相关产品推荐
相关产品推荐

