设置readLine()的超时限制?

Car*_*ven 6 java sockets pop3

我有以下代码通过Java中的套接字读取POP服务器的响应.但问题是,当我使用readLine()函数从服务器读取并且服务器没有回复任何响应时,我的应用程序将挂起,等待服务器的响应.

socket.connect(new InetSocketAddress("pop.server.com", 110), 3000);
input = socket.getInputStream();
BufferedReader incoming = new BufferedReader(new InputStreamReader(input));
incoming.readLine();   //This line will cause my application to hang if the server does not respond with a reply
Run Code Online (Sandbox Code Playgroud)

有没有办法设置超时或其他一些方法,当服务器在一段时间后没有回复时,应用程序应该停止等待响应并继续其他执行?

Pet*_*rey 4

我建议你尝试Socket.setSoTime(timeout)

  • 不过,读取整行并不会超时。如果客户端不断发送字节但从未结束线路怎么办? (2认同)