![](/img/trans.png)
[英]Does closing the BufferedReader/PrintWriter close the socket connection?
[英]How could I know the status of the socket connection inside a PrintWriter
我用
PrintWriter output = new PrintWriter(socket.getOutputStream(), true);
......
output.println(message);
......
由于println函数没有返回值,因此它也不会抛出任何异常。 我怎么知道断线被切断了?
谢谢
请参阅http://download.oracle.com/javase/6/docs/api/java/net/Socket.html
boolean isClosed(),返回套接字的闭合状态。
boolean isConnected(),返回套接字的连接状态。
调用PrintWriter.checkError()
会告诉您是否发生了任何错误。 它不会具体告诉您发生了哪个错误,但如果checkError返回true,您可以推断出最有可能导致已关闭或已损坏的套接字。
如果保留对从中获取输入流的套接字的引用,则可以测试套接字的状态。
最后,如果您确实想知道流“失败”的确切时间和原因,您可以为OutputStream
创建一个包装器,它在写入方法(等)上捕获IOException
,并将其重新包装在一些未经检查的异常中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.