我试图检查本地网络上的 IP 是否打开了给定的 PORT。为此,我遍历子网中的所有 IP。这就是我的代码的样子:
for(int i = 0; i<256; i++){
Socket kkSocket = new Socket();
try{
kkSocket.bind(null);
InetSocketAddress temp = new InetSocketAddress("10.0.0.", PORT);
kkSocket.connect(temp, 10);
Log.i("Scan", "found " + temp.getHostName());
}catch(Exception e){ }
}
这在我的计算机上完美运行,但是当我尝试在我的 Android 设备上运行它时,它无法运行。我尝试使用 Thread.sleep(100)、kkSocket.close() 和 kkSocket.keepAlive(false) 来延迟它,但似乎没有任何效果。如果我不迭代并且只是尝试连接到 10.0.0.45(这是正确的 IP)但那是黑客攻击(我不应该知道要测试哪个 IP),它会起作用。有谁知道是什么导致我的问题或如何解决它?