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 に答える