1.设置客户端读取服务器数据超时时间
setSoTimeout(int timeout); 设置客户端读取服务器数据超时时间
即read()方法开始阻塞时开始计时.read()方法读取不到数据时开始阻塞。
并且不一定精确,而是在timeout时间附近摆动。
2.设置连接服务器超时时间
SocketAddress remoteAddr=new InetSocketAddress(ip, port);
socket.connect(remoteAddr, 15000); // 此处阻塞,连接服务器并设置连接服务器超时时间
到了设置的时间两者都会抛出异常:java.net.SocketTimeoutException
catch (SocketTimeoutException e) {
e.printStackTrace();
Log.i("xfh", "getIp...SocketTimeoutException");
if (!socket.isClosed() && socket.isConnected()) {
Log.i("xfh", "读取网关数据超时!");
return "readtimeout";
} else {
Log.i("xfh", "连接网关超时!");
return "connecttimeout";
}