【问题标题】:Android Socket: java.net.SocketException: No route to hostAndroid Socket:java.net.SocketException:没有路由到主机
【发布时间】:2011-12-15 20:54:43
【问题描述】:

我正在尝试(通过 TCP)从 Android 设备连接到我的机器上运行的服务器。 我的清单文件中有android.permission.INTERNET

<uses-permission android:name="android.permission.INTERNET"></uses-permission>

我可以使用模拟器进行连接,但从设备尝试会引发错误:
Android Socket: java.net.SocketException: No route to host

谁能帮忙。

【问题讨论】:

  • 如何从设备访问您的计算机?通过 Wi-Fi 还是 USB?您使用什么 IP 从 Android 连接到计算机?
  • 嗨,我用的是WIFI。 IP 地址是我使用 ipconfig 得到的:IPv4 地址。 . . . . . . . . . . : 192.168.1.114
  • 您能否访问例如在您的计算机上启动的网络服务器(使用手机上的浏览器)?如果不是 - 那么这是一个网络配置问题,而不是编程问题。
  • 当我在浏览器192.168.1.114:55555 中尝试时,它显示空白页(预期)。所以我不认为这是 n/w 问题。这与防火墙有关吗?
  • 为什么会出现空白页?您可以在您的计算机(Tomcat 或 IIS)上启动 Web 服务器并从设备浏览器访问它吗?还要检查您的路由器上的 Android 设备是否收到了与您的计算机在同一子网中的 IP 地址。

标签: sockets tcpclient android


【解决方案1】:

我的 android 应用程序运行计算机的 IP 地址时遇到了同样的问题。该应用程序运行良好,然后突然凌空开始抛出异常。我尝试启用和禁用我的移动 wifi,但它不起作用。然后我尝试关闭我的主路由器并重新打开。就像那排球很开心,应用程序又开始工作了:)

希望对您有所帮助。

【讨论】:

    【解决方案2】:

    在我的 Android 设备上禁用 wifi,然后重新启用它,它就可以工作了。

    【讨论】:

    • 也为我工作......我试图测试当我的应用程序丢失网络时会发生什么并且可以再次重试所以我停止路由器然后再次重新启动然后我遇到了这个问题,它不是解决了,直到我禁用并再次启用移动wifi
    • 不知道为什么......不知道如何,但是这对你有帮助,LEGEND LOVEU
    【解决方案3】:

    我也有同样的问题。原来我的 Win7 防火墙阻止了连接。

    【讨论】:

      【解决方案4】:

      您的 192.168.1.114 地址是路由器分配给 PC 的 DHCP 地址(动态)。因此它对模拟器是可见的。

      但根据您的 WiFi 设置方式,Android 可能位于不同的路由器/子网上,并且看不到 192.168.1.114。您可以通过在 Android 浏览器的地址栏中输入 192.168.1.114 来检查。

      如果 192.168.1.114 对您的 Android 不可见,那么您必须更改路由器上的路由规则以使其可见,或者为其添加 DNS 查找。

      【讨论】:

        猜你喜欢
        • 2018-02-07
        • 1970-01-01
        • 2013-01-12
        • 1970-01-01
        • 1970-01-01
        • 2019-03-08
        • 2017-08-03
        • 2019-03-08
        相关资源
        最近更新 更多