【发布时间】:2012-06-18 01:52:41
【问题描述】:
我有以下代码:
public void disconnect()
{
running = false;
if(thread != null)
thread.interrupt();
thread = null;
try
{
socket.close();
}catch(Exception e){e.printStackTrace();}
}
我有一个从流中收集输入的 BufferedReader 和一个通过输出流发送消息的 PrintWriter。在我关闭套接字之前是否应该关闭 BufferedReader 和 PrintWriter?让 i/o 流保持打开状态是不是很糟糕?
【问题讨论】:
-
使用流的代码应该能够对 IO 异常做出反应,这些异常可能(并且将会)由于后台意外关闭(本地代码或网络错误等)而导致。
-
@user166390 网络错误不会导致“关闭支持 [socket]”。它保持打开状态,直到创建它的应用程序关闭它。
标签: java sockets networking optimization io