文章目录
ReadTimedOut深入分析
-
Read timed out
就是已经连接成功,但是服务器没有及时返回数据,导致读超时。 -
java程序模拟
Read timed out
服务端 public class SimpleServer { public static void main(String[] args) throws IOException, InterruptedException { ServerSocket serverSocket = new ServerSocket(8888,200); Thread.sleep(6666666); } } //客户端程序 @Test public void testReadTimeOut() { Socket socket = new Socket(); long startTime = 0; try { socket.connect(new InetSocketAddress("127.0.0.1", 8888), 10000); System.out.println("socket连接成功...."); socket.setSoTimeout(2000); startTime = System.currentTimeMillis(); int read = socket.getInputStream().read(); } catch (IOException e) { e.printStackTrace(); } finally { long endTime = System.currentTimeMillis(); System.out.println(endTime - startTime); } }
执行结果
socket连接成功.... 执行时间:2008 java.net.SocketTimeoutException: Read timed out at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.socketRead(SocketInputStream.java:116) at java.net.SocketInputStream.read(SocketInputStream.java:170) at java.net.SocketInputStream.read(SocketInputStream.java:141) at java.net.SocketInputStream.read(SocketInputStream.java: