【问题标题】:no route to host没有到主机的路由
【发布时间】:2013-01-12 01:36:08
【问题描述】:

我在我的 Android 手机上编写了一个应用程序。我在手机上调试。我尝试连接到用 C# 编写的服务器,但每次尝试连接时都会出现异常:

EHOSTUNREACH(没有到主机的路由)

我添加到清单中:

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

我的连接代码:

try {
        InetAddress serverAddr = InetAddress.getByName(IP);
        int PortI = Integer.parseInt(Port);
        socket = new Socket(serverAddr, PortI);
}

【问题讨论】:

  • 我的服务器在我的电脑地址 192.168.0.102 的局域网中
  • 你的安卓是模拟器?
  • 不,我在设备上调试 (Galaxy Ace)
  • 192.168.*.* 是专用 LAN 地址。您无法从同一个 LAN 外部访问它。

标签: android networking tcp client


【解决方案1】:

试试这个!

  1. 检查您的设备已连接到互联网,在 LAN 网络中进行测试时向服务器和同一网络发出请求。

  2. 检查如果您连接在局域网中,您已禁用服务器的防火墙。

  3. 检查您发送请求的 URL。

【讨论】:

  • 不是互联网打开浏览器并打开服务器的Web服务的URL然后检查它。是否运行。
  • 你的服务器的ipaddress是什么??如果 ipaddress 是 192.168.0.102 然后打开浏览器然后输入这个 192.168.0.102 然后检查它的连接与否。
  • 连接不上。我使用 192.168.0.102 和 192.168.0.102:8080 但它不起作用
  • 这是您收到 no route to host 错误的原因,因为 192.168.0.102 不允许连接到您。要解决此问题,请确保您在同一网络上并从 Windows 控制面板禁用此电脑的 192.168.0.102 防火墙。
  • @user1678400 如果它解决了你的问题,请接受这个答案。
【解决方案2】:

只需重启 Android Studio 并执行以下操作

[File]-->[Invalidate Caches/Restart] --> 选择[Invalidate and Restart]

这可能会解决问题。嗯,它对我有用。

【讨论】:

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