如果服务器没有收到完整的请求并关闭连接,我的服务器会在 45 秒后超时。我通过 a 连接到该服务器Socket
并将我的请求写入套接字的OutputStream
.
Socket socket = new Socket("myhost", myPort);
PrintWriter out = new PrintWriter(socket.getOutputStream());
out.write(properRequestMessage);
out.flush();
我在这里假设我的请求很好(遵循我的协议)。服务器应该以文件响应。我尝试从套接字输入流中读取:
BufferedReader response = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String in;
while((in = response.readLine()) != null) {
System.out.println(in);
}
这里的readLine()
块,我认为这是因为我的服务器认为我的请求没有正确终止,因此正在等待更多。
现在,如果 45 秒过去了,我的服务器超时,是否会readLine()
取消阻止或等待某个Socket
默认超时时间?