:) 我正在尝试制作一个 Android 应用程序,它将扫描整个网络以查找特定的开放端口。我正在使用 Android Studio (Windows) 和模拟器。在我的程序停止运行之前,我可以扫描网络 90 秒。我没有收到任何 logcat 错误,并且在调试器中丢失了堆栈和程序计数器。如果不先重新启动模拟器,我将无法重新启动程序。看起来我失去了与模拟器的任何连接。
我还应该提到,删除套接字连接线会导致任务无限期运行。有没有人经历过这种超时?
任何指向正确方向的指针将不胜感激!
珍妮
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;
}