当按下按钮时,我使用bufferedReader从客户端的服务器读取输出,它工作正常,但是当连接关闭时我无法使用方法errorHandling - 我包装(bufferedreader对象)。 try / catch中的readLine但它不会抛出异常,当连接失败时out.checkError也不会返回true。如果连接结束,该程序只是完全冻结并且没有达到最后一次捕获。
if(source==button) {
String back = "";
if(out.checkError()){
errorHandling("I/O Closed");
return;
}
switch(currentOp){
case(0):
out.println("R "+input.getText());
break;
case(1):
out.println("P "+input.getText());
break;
case(2):
out.println("M "+input.getText());
break;
}
try{
if((back=in.readLine())==null) throw new SocketServerException();
}
catch(Exception e){
errorHandling("I/O Closed");
return;
}
答案 0 :(得分:0)
你描述的情况是不可能的。因此,它没有发生。对等套接字必须仍然是打开的。检查你的观察结果。