当我在不关闭套接字的情况下突然关闭客户端。服务器将首先循环一些,然后抛出连接重置异常。为什么服务器首先循环而不是中间抛出异常? 如何处理客户端断开连接而不关闭套接字的情况? 以下是服务器的listenClient方法:
private void listenClientMessage() throws IOException {
String line = null;
while (true) {
try{
line = in.readLine();
}
catch(IOException e){
System.out.println("Client disconect abruptly");
throw new IOException();
}
if (line.startsWith("\\")) {
if (processClientRequest(line)) {
break;
}
}
else {
broadcast(clientName + ": " + line);
}
}
}