可中断套接字读取Java

时间:2012-07-23 00:50:26

标签: java sockets networking stream client-server

我正在尝试在java中创建一个相当简单的客户端/服务器应用程序。客户端有两个线程,服务器有两个线程(每个客户端),一个用于输入和输出。我几乎不断地通过Object Streams发送数据。读()块。我需要能够中断read()线程(即断开连接)。我该怎么做?

3 个答案:

答案 0 :(得分:1)

只需关闭套接字周围的输出流即可。如果它也在您的平台上阻塞,请使用读取超时并让读者在每次跳闸时检查断开标记。

答案 1 :(得分:1)

关闭Socketread方法将被IOException中断。处理该异常以清理你的线程。

答案 2 :(得分:0)

您可以使用非阻止调用或在线程上使用Interrupt method。一旦被中断,read操作将抛出一个Exception,您可以很好地捕获并结束该线程。