这就是问题所在。
我有两部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)
答案 0 :(得分:0)
忘记网络并重新连接到它解决了这个问题。
感谢您的帮助!