0

应该如何处理客户意外断开连接。除非客户端明确声明要关闭,否则我想保持服务器运行/侦听。

例如,我的服务器正在侦听,然后客户端关闭,这导致服务器的方法结束 - 我怎样才能让它返回到方法的开头?

    serverSocket = new ServerSocket(port);
    clientSocket = serverSocket.accept();         
    out = new PrintWriter(clientSocket.getOutputStream(), true);
    in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));                   
    BasicProtocol bp = new BasicProtocol(password);
    out.println(bp.processInput(""));
    String inputLine;
    while((inputLine = in.readLine()) != null ){
       System.out.println("Client asks: " + inputLine);
       out.println(bp.processInput(inputLine));            
    }

如上所述,如果发生连接重置错误,如何等待重新连接?

4

1 回答 1

1

例如,您可以在该方法中使用一个带有布尔变量的 while 循环,该变量在客户端想要关闭时更改。像这样:

boolean isRunning = true;
while (isRunning) {
    //Your current method - when client wants to disconnect just set isRunning = false;
}
于 2013-03-20T16:55:16.683 回答