繁体   English   中英

我怎么知道PrintWriter中套接字连接的状态

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM