You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python Socket局域网通信报错:安卓客户端无法连接PC服务器

解决安卓端局域网Socket连接报错Errno 113(No route to host)的问题

针对你遇到的PC端Socket服务器能被本地客户端连接,但安卓端提示OSError : [Errno 113] No route to host的问题,按以下步骤排查解决:

1. 确认网络基础连通性

  • 在安卓设备上通过终端类APP执行ping命令,测试与PC IP(192.168.1.7)的连通性:
    ping 192.168.1.7
    
    如果ping不通,说明安卓和PC存在网络隔离:
    • 检查两者是否连接同一WiFi热点;
    • 排查路由器是否开启“AP隔离”功能(部分路由器默认开启,会阻止局域网内设备互访)。

2. 彻底排查PC防火墙/安全软件

即使开放了1700端口,仍可能存在拦截:

  • 系统防火墙:
    • 确认TCP 1700端口的入站规则允许所有局域网设备访问(而非仅本地或特定IP);
    • 临时关闭系统防火墙,测试安卓能否连接,若成功则重新配置规则。
  • 第三方安全软件:
    • 暂时关闭360、腾讯电脑管家等软件的防火墙功能,测试连接;
    • 若成功,在安全软件中添加允许1700端口TCP入站的规则。

3. 确认PC局域网IP正确性

PC的局域网IP可能因路由器DHCP重新分配而变化:

  • 在PC上执行命令查看当前IP:
    • Windows:ipconfig,找到WiFi/以太网适配器的IPv4地址;
    • Linux/macOS:ip addr或ifconfig;
  • 确保安卓客户端代码中填写的IP与PC当前IP一致。

4. 检查安卓应用的网络权限

安卓应用需要明确权限才能访问局域网:

  • 在AndroidManifest.xml中添加权限:
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    
  • 安卓10及以上版本,进入应用设置,确认“网络权限”已开启。

5. 验证服务器端口监听状态

确认Python服务器确实在监听1700端口:

  • 在PC上执行命令查看端口占用:
    • Windows:netstat -ano | findstr 1700;
    • Linux/macOS:lsof -i :1700;
  • 确保输出中显示你的Python进程正在监听该端口。

可选:优化客户端代码排查

给安卓端Python代码添加异常捕获,方便定位细节问题:

import socket
try:
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.settimeout(10)  # 设置超时,避免无限等待
    s.connect(('192.168.1.7', 1700))
    print("连接成功")
except socket.timeout:
    print("连接超时,请检查网络或服务器状态")
except Exception as e:
    print(f"连接失败: {str(e)}")
finally:
    s.close()

内容的提问来源于stack exchange,提问作者MDKouhbanani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 01:43:24