我用
PrintWriter output = new PrintWriter(socket.getOutputStream(), true);
......
output.println(message);
......
由于 println 函数没有返回值,所以它也不会抛出任何异常。我怎么知道断线了?
谢谢
我用
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