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

Android网络API无法连接同局域网Java GET服务器问题求助

解决Android无法连接局域网Java GET服务器的问题

我之前也碰到过几乎一模一样的场景:本地Java服务器在浏览器里正常跑,但Android端死活连不上,报超时错误。结合你的情况,咱们一步步排查解决:

1. 检查Java服务器的监听地址

很多新手写ServerSocket的时候,会默认绑定127.0.0.1(也就是localhost),这就导致只有服务器本机能访问,局域网内的其他设备(比如你的手机)根本连不上。

修正方法:
把服务器代码里绑定的IP改成0.0.0.0(监听所有可用网络接口),或者直接绑定你的局域网IP192.168.1.103。比如:

// 错误写法:仅本机可访问
ServerSocket serverSocket = new ServerSocket(8077, 50, InetAddress.getByName("127.0.0.1"));

// 正确写法1:监听所有接口
ServerSocket serverSocket = new ServerSocket(8077, 50, InetAddress.getByName("0.0.0.0"));

// 正确写法2:绑定指定局域网IP
ServerSocket serverSocket = new ServerSocket(8077, 50, InetAddress.getByName("192.168.1.103"));

2. 配置Android的网络权限与明文HTTP允许

Android 9(API 28)及以上版本默认禁止明文HTTP请求,同时必须声明网络权限:

  • 在AndroidManifest.xml里添加网络权限:
<uses-permission android:name="android.permission.INTERNET" />
  • 在<application>标签里添加允许明文HTTP的配置:
<application
    ...
    android:usesCleartextTraffic="true">
    ...
</application>

3. 检查电脑防火墙/安全软件拦截

电脑上的防火墙、杀毒软件很可能会拦截局域网设备对8077端口的访问。你可以:

  • 临时关闭防火墙,测试是否能连接
  • 或者在防火墙里添加入站规则,允许TCP协议的8077端口接收连接

4. 确认网络环境的连通性

虽然你说在同一网络,但还是要做两个验证:

  • 用电脑ping手机的IP(手机设置里能查到),看是否能通
  • 用手机的终端工具(比如Termux)ping电脑的IP192.168.1.103,看是否能通
    如果ping不通,大概率是路由器开启了AP隔离功能,去路由器后台关掉这个选项就行。

5. 确保Android网络请求不在主线程

Android严格禁止在主线程执行网络请求,如果你直接在Activity的主线程里发起请求,不仅会报异常,也可能导致超时假象。务必用异步方式执行网络请求,比如:

  • 使用AsyncTask(旧版)
  • 使用Kotlin Coroutines(推荐)
  • 使用OkHttp的异步回调

按照上面的步骤排查,应该能解决你的连接超时问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:52:19