这就是问题所在。
我有两部安卓手机,都连接到同一个无线网络。一部电话正在使用 ServerSocket 进行侦听,而另一部则尝试使用此套接字进行连接。
然而,这并没有发生。(ie) 没有建立连接。但是,当我在我的 PC(也在同一网络上)上创建一个监听 ServerSocket 并将我的手机设置为连接到 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)