尝试运行循环以检查IP是否已打开。
for (int z = 0; z < 100; z++) {
String ip = "10.0.0." + z;
try {
log(ip);
Socket socket = new Socket(ip, MainActivity._util.getPort());
// Handle Stuff when Exception NOT throw
} catch (Exception e) {
}
}
log是我做的一个函数(没有错误)
.getPort()只是我定义的“全局”端口号 编辑:返回2683(只是一个随机数)
它应该只是捕获异常然后继续使用for循环,但这不会发生。
目前只打印:
10.0.0.0
10.0.0.1
然后冻结。
如果有人有任何建议会很棒!
编辑
使用socket.connect(新的InetSocketAddress(ip,port),timeout)方法仍然无法正确处理
这是在AsyncTask扩展类中,在doInBackground()方法中
答案 0 :(得分:2)
没有套接字服务器可以监听这些IP和端口。所以你的套接字客户端将被冻结。如上所述here,您应该为套接字使用另一个构造函数,并设置超时以防止冻结。
for (int z = 0; z < 100; z++) {
String ip = "10.0.0." + z;
try {
log(ip);
Socket socket = new Socket();
socket.connect(new InetSocketAddress(ip, MainActivity._util.getPort()), 1000);
// Handle Stuff when Exception NOT throw
} catch (Exception e) {
}
}