2
:)我試圖製作一個Android應用程序,它將掃描特定開放端口的整個網絡。我正在使用Android Studio(Windows)和模擬器。我能夠在我的程序停止運行之前掃描網絡90秒。我沒有收到任何logcat錯誤,我在調試器中丟失了堆棧和程序計數器。沒有首先重新啓動模擬器,我無法重新啓動程序。看起來我失去了我對模擬器的任何連接。適用於Android的套接字掃描
我還應該提到刪除套接字連接線會導致任務無限期地運行。有沒有人經歷過這種時間?
任何指針正確的方向將非常感謝!
珍妮
private class getNetworkState extends AsyncTask<Integer, Integer, Integer> {
@Override
protected Integer doInBackground(Integer... params) {
for (int subnet2 = 216; subnet2 < 220; subnet2++)
{
for (int subnet = 0; subnet < 255; subnet++)
{
// open a tcp socket
String server = String.format("192.168.%d.%d", subnet2, subnet);
Socket socket = new Socket();
try
{
socket.connect(new InetSocketAddress(server, port), timeOut);
System.out.println("Network state of " + server + " == " + socket.isConnected());
socket.close();
}
catch (Exception e)
{
System.out.println("Network state of " + server + " == " + e);
}
}
}
return 1;
}
感謝您的relpy!我看到一個失敗的連接異常〜90%的時間。我添加了一個finally {}部分來關閉套接字,但看到相同的行爲。我認爲這是正確的道路,因爲如果我連續連接一個已知的開放端口進行測試,我沒有看到時間,但連接到已知的封閉端口,我確實看到了時間。 - 珍妮 – user2561654
嗨珍妮,你有沒有想過問題是什麼? – AWT
感謝您入住!我無法在這個問題上取得重大進展。如果這是一個模擬器問題,我向Google發送了一份報告,試圖清除它,因爲我無法在移動設備上運行時重現超時。我也在考慮在Ubuntu中設置我的環境,以查看它是否可能是Windows問題。 – user2561654