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

Kotlin应用调用本地Express服务器出现SocketTimeoutException问题

排查步骤与解决方案

1. 验证基础网络连通性

  • 用你的Android设备(或模拟器)自带浏览器访问 http://192.168.0.10:3100,如果无法加载内容,说明问题出在网络层面,而非代码。

2. 检查Express服务器绑定地址

  • 确保Express服务器绑定到0.0.0.0而非localhost/127.0.0.1。后者仅允许本机访问,局域网设备无法连接。修改启动代码:
    app.listen(3100, '0.0.0.0', () => {
      console.log('Server running on http://0.0.0.0:3100');
    });
    

3. 配置电脑防火墙规则

  • Windows:打开Windows Defender防火墙,新建入站规则,允许TCP协议的3100端口通过;或临时关闭防火墙测试。
  • Mac:进入系统设置→网络→防火墙,添加运行Express的Node.js进程,允许其接收网络连接。

4. 确认设备与电脑在同一局域网

  • 物理设备:确保手机和电脑连接同一WiFi网络,禁用移动数据。
  • Android模拟器:使用10.0.2.2替代电脑的局域网IP(模拟器将此地址映射到主机的localhost),修改Retrofit的baseUrl为http://10.0.2.2:3100/。

5. 验证端口占用情况

  • 检查3100端口是否被Express正确占用:
    • Windows:执行命令 netstat -ano | findstr :3100,确认PID对应的进程是Node.js。
    • Mac/Linux:执行命令 lsof -i :3100,确认监听进程为Node。

6. 其他排查动作

  • 重启Android设备/模拟器,重置网络连接。
  • 检查Retrofit的baseUrl是否正确,确保末尾包含斜杠(如http://192.168.0.10:3100/)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 01:14:56