Scanner et Thread en java

Fermé
benjtlv Messages postés 26 Date d'inscription jeudi 26 avril 2012 Statut Membre Dernière intervention 26 avril 2016 - 26 mai 2014 à 12:54
KX Messages postés 16754 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 26 mai 2014 à 18:19
Bonjour.
Je développe en ce moment une application réseau dans laquelle chaque utilisateur se connecte à un groupe multicast et peut par la suite se connecter en TCP (chat) avec un autre utilisateur.
Mon problème est que d'un côté l'application demande à l'utilisateur d'entrer une commande (RFH, BYE ou BAN ou CON pour avoir differents resultats mais qui concernent la partie UDP, la partie multicast, et d'un autre côté, un scanner qui permet d'entrer les messages au clavier une fois connecté à un utilisateur, en gros 2 Scanners et mon problème est que c'est le gros bordel entre les 2 scanners et je ne vois pas du tout comment resoudre se probleme. A savoir que les scanner sont dans deux thread differents et que j'ai déjà essayer d'utiliser des boolean et faire des blocs synchronized
A voir également:

1 réponse

KX Messages postés 16754 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 020
26 mai 2014 à 18:19
Bonjour,

Si je comprends bien tu as deux Scanner ouverts sur le même flux (System.in) ?
Si c'est ça en effet tu vas avoir des problèmes pour savoir lequel des deux va prendre l'entrée (au nez je dirais que c'est le premier Thread à avoir la main qui va prendre la donnée).

Pour résoudre ce problème il faudrait soit ouvrir des Scanner sur des flux différents (avec deux consoles ?), soit avoir un troisième Scanner (le seul en lecture sur System.in) qui va lire chaque ligne avec une marque (un préfixe par exemple) de manière à aiguiller la ligne vers l'un ou l'autre des deux autres Scanner.
0