Dans mon fil principal, j'ai un while(listening)
qui appelle accept()
sur mon ServerSocket
puis lance un nouveau fil client et l'ajoute à une collection lorsqu'un nouveau client est accepté.
J'ai également un fil de discussion pour l'administration que je veux utiliser pour donner des ordres, par exemple 'exit'
qui provoquera l'arrêt de tous les threads du client, s'arrêtera lui-même et arrêtera le thread principal, en mettant l'écoute à false.
Cependant, le accept()
dans l'appel while(listening)
La boucle se bloque, et il ne semble pas y avoir de moyen de l'interrompre, de sorte que la condition "while" ne peut pas être vérifiée à nouveau et que le programme ne peut pas sortir !
Y a-t-il une meilleure façon de procéder ? Ou un moyen d'interrompre la méthode de blocage ?
1 votes
Véase stackoverflow.com/questions/2804797/java-stop-server-thread
0 votes
Pour les personnes qui veulent attendre x temps et ensuite réagir, utilisez setSoTimeout().