Salve,
premetto che il programma in questione è solo per la scuola, quindi molto probabilmente è pieno di imperfezioni che nemmeno noto. Detto ciò, sto cercando di fare un'applicazione client-server in cui molteplici client possono chattare in gruppo, e quindi ogni messaggio passa per il server che lo inoltra a tutti.
Il mio problema è proprio nel server: dopo che faccio partire il primo thread per il primo client, non va più avanti continuando ad eseguirlo, eppure se provo a connettermi con un altro client si connette anche se ovviamente la chat non funziona perché il suo codice non viene eseguito.
Ecco qui il pezzo:
codice:
try{
//Creazione del serverSocket con lettura da tastiera della porta
streamSocket=new ServerSocket(getPort());
//Creazione dell'ArrayList di threads
threads=new ArrayList <ServerThread>();
//Creazione e avvio del primo thread
System.out.println("In attesa di connessione...");
threads.add(new ServerThread(1, streamSocket.accept()));
threads.get(0).start();
ID=1;
//si ferma qui
while(true){
if(threads.get(threads.size()-1).isConnected()){ System.out.println("Creo nuovo thread");
threads.add(new ServerThread(ID++, streamSocket.accept()));
threads.get(threads.size()-1).start();
sendToAll(threads.size()-1, "Il client "+(ID-1)+" è entrato in chat.");
}
//proseguimento chat
}
}...