当计时器结束时,如何打破用于从套接字接收数据的while循环?

时间:2014-06-06 09:33:29

标签: java sockets timer while-loop break

我有一个客户端从服务器接收循环数据

while (true) {
     System.out.println(in.readLine());
}

我希望设置一个5秒的计时器,以便在时间到期时退出循环。 我经常搜索,但我找不到任何可以帮助我的东西。

我已尝试使用Timer类,但我发现只安排执行任务的示例。

我尝试的另一件事是使用System.currentTimeMillis(),但由于in.readLine()是阻塞的,我无法打破循环并执行上面。

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以设置套接字setSoTimeout(int)以超时读取输入流。

其中int以毫秒为单位