套接字无法连接

时间:2012-12-08 13:02:26

标签: android sockets

这就是问题所在。

我有两部Android手机,都连接到同一个Wi-Fi网络。一部手机正在使用ServerSocket侦听,另一部手机尝试连接此套接字。

但是,这种情况并没有发生。 (即)连接未建立。但是,当我在PC上(也在同一网络上)创建一个侦听ServerSocket并将我的手机设置为连接到PC时,就建立了连接。

换句话说,我可以在手机和PC之间建立连接,但不能在手机和手机之间建立连接。有没有人知道可能导致这个问题的原因是什么?

谢谢!

以下是我用于获取IPv4地址的代码。

WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
int ipAddress = wifiInfo.getIpAddress();
int[] address = new int[4];
String ip = "";
for (int i = 0; i < 4; i++) {
   address[i] = ipAddress % 256;
   ipAddress /= 256;
   if (i != 3)
      ip += (String.valueOf(address[i]) + ".");
   else
      ip += String.valueOf(address[i]);
}
return ip;

编辑:

我尝试记录确切的位置和原因,但它给出了以下错误:

java.net.SocketException: No route to host at 
org.apache.harmony.luni.platform.OSNetworkSystem.connect(Native Method) at 
dalvik.system.BlockGuard$WrappedNetworkSystem.connect(BlockGuard.java:357) at 
org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:207) at 
org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:186) at 
java.net.Socket.startupSocket(Socket.java:735) at 
java.net.Socket.<init>(Socket.java:263) at 
com.test.word.WifiActivity$12.run(WifiActivity.java:460) at
java.lang.Thread.run(Thread.java:1027)

1 个答案:

答案 0 :(得分:0)

忘记网络并重新连接到它解决了这个问题。

感谢您的帮助!