0
我試圖檢查本地網絡上的IP是否打開給定PORT。爲此,我遍歷子網中的所有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測試)。有誰知道是什麼原因導致我的問題或如何解決它?
那麼,是什麼問題? 「不起作用」不是很準確。 –
您必須關閉插座。這不是可選的,或者你只是'嘗試'的東西。你也不能忽視異常。 – EJP