通过 wifi 将 Android 客户端连接到 Java servlet

Connecting Android client to a Java servlet via wifi

我正在按照本教程进行实施:http://www.veereshr.com/Android/AndroidToServlet

我启动了我的服务器并 运行ning 我可以在我的浏览器中打开它的本地主机 link。但是,当我 运行 我的 Nexus 5 上的 Android 应用程序时,我收到此错误:

11-26 01:34:46.501 1092-1340/com.example.nav.wificlient D/Exception:java.net.ConnectException: 无法连接到 /10.0.2.2(端口 8080):连接失败:EHOSTUNREACH(没有到主机的路由)

11-26 01:35:29.171 1092-1557/com.example.nav.wificlient D/Exception: java.net.ConnectException: 无法连接到 /10.0.2.2(端口 8080):连接失败:ETIMEDOUT(连接超时)

我的笔记本电脑(运行正在运行服务器程序)和我的 phone 都连接到大学校园内的同一个网络(称为 eduroam)。我确保我的防火墙设置不会阻止笔记本电脑上的传入连接。

我想知道校园网络设置是否以某种方式阻止了此...但我不确定。关于如何缩小可能出错的范围的任何想法?

10.0.2.2 是模拟器直接解释的唯一地址,用于引用机器 运行 模拟器。这很有用,因为 "localhost" 会简单地引用模拟器本身。

由于您不是 运行 模拟器上的 android 应用程序,而是实际设备,因此您需要更改您的应用程序,以便连接到 10.0.2.2,而不是连接到 10.0.2.2到托管服务器的计算机的本地 IP。

有关详细信息,请参阅 here