【问题标题】:No Route to Host - Android Client TCP connection没有到主机的路由 - Android 客户端 TCP 连接
【发布时间】:2012-02-19 22:10:50
【问题描述】:

我正在编写一个代码,其中 android 手机是客户端尝试使用 WIFI 连接到我的电脑上的服务器。我按如下方式打开套接字:

try {
  servsock = new ServerSocket(13299);
  System.out.println("Listening :13299");
} catch (IOException e) {
  e.printStackTrace();
}

while (true) {
  Socket sock = servsock.accept();

在客户端:

Socket sock = new Socket("192.168.0.108", 13299);
Log.i("sending","sending");

但是我在 logcat 上收到:“No route to host”我已经搜索并在 manifest.xml 中插入了使用互联网的权限,并从我的手机 ip 192.168.0.107 ping 到 ip 192.168 的 pc 服务器.0.108.

我错过了什么?为什么没有建立 tcp 套接字连接?服务器是用netbeans编写的。和端口有关系吗?

编辑:我认为问题出在 IP 地址上。我根据cmd窗口中“ipconfig”的输出设置了服务器的地址(私有地址)。

【问题讨论】:

  • 如果你telnet到192.168.0.108 13299,PC可以连接到自己吗?可能是绑定地址或防火墙问题。
  • 是的,我可以远程登录,我关闭了防火墙,但问题仍然存在
  • 我猜你尝试 telnet 到 127.0.0.1/localhost 而不是 192.168.0.108 因为下面@BrianRoach 的回答可能是你的问题。
  • 尝试通过ServerSocket server = new ServerSocket( myTcpPort, 0, androidDeviceAddress );看看会发生什么,不要使用通配符。
  • java.net.BindException:无法分配请求的地址:JVM_Bind 这是我收到的错误,为什么我这样做

标签: java android tcp


【解决方案1】:

我遇到了同样的问题,我更改了互联网接入点并且应用程序正常工作。我的应用使用本地 IP 访问服务器。

【讨论】:

    【解决方案2】:

    一定是某种阻塞使您与服务器的连接超出了客户端的范围。尝试应用不同的端口,看看会发生什么。

    【讨论】:

    • 我仍然无法连接,有什么帮助吗?
    猜你喜欢
    • 2012-09-13
    • 2022-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多