Ho realizzato un server multithread,che gestisce delle applicazioni client.
Non riesco a sviluppare un codice che mi permetta di forzare i client a tentare di ripristinare la connessione, nel caso in cui il Server venga fermato e riavviato.
L'unica idea che mi è venuta è quella di creare una thread che periodicamente inoltri una richiesta al Server,ma funziona solo una volta.

Questa è la classe che esegue il controllo e che prende come parametro la Socket della classe principale del client.
codice:
public class ControlloConnessione extends Thread {
       OutputStreamWriter osw;
       BufferedWriter bw;
       PrintWriter out;
   //il costruttore   
    ControlloConnessione(Socket s){
        this.start();
        while(true){
                    try{
                        this.sleep(10000);
                        osw = new OutputStreamWriter(s.getOutputStream());
                        bw = new BufferedWriter(osw);
                        out = new PrintWriter(bw, true);
                        out.println("Controllo Connessione");
                        System.out.println("Controllo Connessione");
                    }
                    catch(Exception e){
                                      e.printStackTrace();
                                      try{
                                          s=new Socket("localHost",4444);
                                          }
                                      catch(Exception exc){exc.printStackTrace();}
                    }
                       
     }
    }
   }