ローカル ネットワーク上の IP で特定のポートが開いているかどうかを確認しようとしています。これを行うには、サブネット内のすべての 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 をテストするかを知る必要はありません)。私の問題の原因や修正方法を知っている人はいますか?