Java Android套接字连接
尝试运行循环以检查IP是否打开Java Android套接字连接,java,android,sockets,exception,freeze,Java,Android,Sockets,Exception,Freeze,尝试运行循环以检查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
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) {
}
}
然后冻结
如果有人有什么建议那就太好了
编辑
- 使用socket.connect(新的InetSocketAddress(ip,端口),超时)方法仍然无法正确处理
- 这是在doInBackground()方法中的AsyncTask扩展类中
- 没有套接字服务器来侦听这些IP和端口。因此,您的套接字客户端将被冻结。如前所述,您应该为套接字使用另一个构造函数,并设置超时以防止冻结
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) {
}
}
for(intz=0;z<100;z++){
字符串ip=“10.0.0.”+z;
试一试{
日志(ip);
套接字=新套接字();
connect(新的InetSocketAddress(ip,MainActivity.\u util.getPort()),1000);
//当异常未抛出时处理内容
}捕获(例外e){
}
}
此处的端口:**MainActivity.\u util.getPort()***当您在for循环中时,该int是否有可能更改其值???当ip为false时可能是异常情况?@jgm假ip是什么意思?首先,不要在每次迭代中创建套接字。此外,还有一个最后的{socket.close()}在这里调用此代码?它在活动吗?
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) {
}
}