Bonjour, je suis en train de réaliser un programme réseau en Java qui fait des sondages (il prend une question en argument).
Quand un client se connecte, le serveur envoi la question, le client répond par oui ou par non et le serveur comptabilise son vote.
Quand on tape quit dans l'invite de commande du serveur, le serveur affiche le résultat du sondage et s'arrête.
Voici mon code : Télécharger la source.
Donc pour résumer, lorsque mon serveur tourne, il y a 2 threads qui s'exécutent :
- main (methode go) : écoute le port 7777 et créé une connexion quand un client se connecte
- Saisie : il surveille ce qu'on écris dans l'invite de commande serveur, et quand on écrit quit ça arrête tout
Mon problème, c'est que quit ne fonctionne pas bien. Quand le thread Saisie reçoit quit, il change la valeur de continue_flag de true à false.
Ça a pour effet d'arrêter la boucle while( continue_flag ) de la méthode go(). Seulement ça ne l'arrête pas sur le champ, mais dés la prochaine connexion (puisque go attend en permanence sur la ligne :
Socket sockClient = serveurSock.accept();.
Donc comment je peux faire pour que ça le stop dans la seconde sans attendre le prochain client ?
Merci
Partager