Android 套接字连接
Android Socket Connections
正在尝试 运行 循环检查 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() 只是我定义的 "global" 端口号
编辑:returns 2683(只是一个随机数)
它应该只是捕获异常然后继续 for 循环,但那并没有发生。
目前这只是打印:
10.0.0.0
10.0.0.1
然后冻结。
如果有人有什么建议那就太好了!
编辑
使用socket.connect(new InetSocketAddress(ip, port), timeout) 方法仍然没有正确处理
这是在扩展的AsyncTask中class,在doInBackground()方法中
没有套接字服务器监听那些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) {
}
}
正在尝试 运行 循环检查 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() 只是我定义的 "global" 端口号 编辑:returns 2683(只是一个随机数)
它应该只是捕获异常然后继续 for 循环,但那并没有发生。
目前这只是打印:
10.0.0.0
10.0.0.1
然后冻结。
如果有人有什么建议那就太好了!
编辑
使用socket.connect(new InetSocketAddress(ip, port), timeout) 方法仍然没有正确处理
这是在扩展的AsyncTask中class,在doInBackground()方法中
没有套接字服务器监听那些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) {
}
}