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();}
}
}
}
}