为什么我可以连接到远程服务器,但不能连接到本地网络中的服务器?

时间:2013-02-20 14:18:14

标签: android networking

我实现了一个TCP客户端,到目前为止工作正常,至少如果我尝试连接到REMOTE服务器。如果该服务器在我的LOCAL wifi网络中,我总是得到

02-20 14:09:04.400: W/System.err(29562): java.net.SocketException: failed to connect to /xxx.xxx.xxx.xxx (port xyz) after 5000ms: isConnected failed: EHOSTUNREACH (No route to host)

BUT !!如果我有LOCAL服务器ping我的Android设备,它被ping后会工作,设备将连接到我的LOCAL服务器。

此行为的任何已知原因?我不知道应该从哪里开始寻找解决方案。

1 个答案:

答案 0 :(得分:2)

您尚未发现本地网络的任何发现,因此设备无法知道服务器所在的位置。答案在于错误: “没有主持人的路线”

首先发现网络以更新MAC表。通常情况下,您可以检查MAC是否已知(在ARP表中),如果没有,请先执行ARP请求。

当您首次从服务器执行ping操作时它的工作原理:移动设备随后知道MAC(在ARP表或MAC表中)。