0

我使用了这个网站上关于 Android 中套接字编程的代码。一部手机是,client而另一部充当server。我准确地复制/粘贴了代码,并将server代码放在一部手机上,另一部手机client上。两部手机都连接到同一个wifi路由器

但是,我什至无法从客户端向服务器电话发送简单的消息。我得到timeouts和错误java.net.ConnectException: failed to connect to /10.0.2.15 (port 8080): connect failed: EHOSTUNREACH (No route to host)

我读到其他一些人已成功使用此代码。这就是为什么我认为它与wifi连接有关。我尝试了另外两个路由器并遇到了同样的问题。我还尝试了设置Port forwarding(这是某些路由器上的设置,您告诉路由器您正在使用某个端口,例如 8080,您需要这样做才能使套接字编程工作)。但是,两个路由器都没有英语语言设置。所以我找不到port forwarding设置在哪里。如果需要让这个东西正常工作,我可以得到一个具有英语语言设置的新路由器。

我的问题是:您认为port forewarding设置很可能是问题所在,还是我忽略了其他问题?任何将我指向正确方向的想法将不胜感激。

这是完整的 Logcat 输出:

01-22 18:37:40.100: E/ClientActivity(19568): C: Error
01-22 18:37:40.100: E/ClientActivity(19568): java.net.ConnectException: failed to connect to /10.0.2.15 (port 8080): connect failed: EHOSTUNREACH (No route to host)
01-22 18:37:40.100: E/ClientActivity(19568):    at libcore.io.IoBridge.connect(IoBridge.java:114)
01-22 18:37:40.100: E/ClientActivity(19568):    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
01-22 18:37:40.100: E/ClientActivity(19568):    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
01-22 18:37:40.100: E/ClientActivity(19568):    at java.net.Socket.startupSocket(Socket.java:566)
01-22 18:37:40.100: E/ClientActivity(19568):    at java.net.Socket.<init>(Socket.java:225)
01-22 18:37:40.100: E/ClientActivity(19568):    at com.example.client.ClientActivity$ClientThread.run(ClientActivity.java:60)
01-22 18:37:40.100: E/ClientActivity(19568):    at java.lang.Thread.run(Thread.java:856)
01-22 18:37:40.100: E/ClientActivity(19568): Caused by: libcore.io.ErrnoException: connect failed: EHOSTUNREACH (No route to host)
01-22 18:37:40.100: E/ClientActivity(19568):    at libcore.io.Posix.connect(Native Method)
01-22 18:37:40.100: E/ClientActivity(19568):    at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:85)
01-22 18:37:40.100: E/ClientActivity(19568):    at libcore.io.IoBridge.connectErrno(IoBridge.java:127)
01-22 18:37:40.100: E/ClientActivity(19568):    at libcore.io.IoBridge.connect(IoBridge.java:112)
4

1 回答 1

0

那里的代码不能单独工作。您需要修改服务器和客户端上的 IP 地址以满足您的需要。尝试将当前服务器 IP 地址修改为本地地址 - “192.168.1.xxx”。在客户端中,您希望连接到与您作为服务器输入的 IP 地址相同的 IP 地址。无需更改路由器设置以进行端口转发。

于 2013-01-22T10:20:59.737 回答