Dans le cadre de mes cours, je doit réaliser une application client serveur avec de multiples clients.
Nous devons obligatoirement utiliser le protocole UDP, et programmer en Java.
Le problème c'est que je n'arrive pas a rendre l'application multi client. Voici le pseudo code :
//Programme principal
Tant que c'est vrai
recevoirMessage()
Si msgRecu.pseudo = "root " et msg.contenu = "mot de passe"
...//fermeture socket etc
Sinon
t = new MonThread(msgRecu);/*on transmet le message avec tout les infos client telle que l'adresse la socket etc.... au thread qui traitera le client*/
t.start();
FinSi
Fin tant que
//msgRecu est de type objet et l'envoie et la reception d'objet fonctionnne parfaitement.
//classe MonThread
//contructeurs etc...
...
envoyerMessage(msgEnvoi);
recevoirMessage();
...
//Fin classe MonTread
Le probleme c'est que lorsque un client qui est traité par le thread envoie un message, c'est le programme principale que le recoit et non le thread. Du coups le thread attend un message et se bloque.
Voila, le problème. Ce pseudo code fonctionne pour le protocole TCP mais pas pour UDP. Si vous pouviez m'aider a arranger ce pseudo code pour gérer le multi client en UDP avec Java, je vous serai reconnaissant.
17 mai 2011 à 20:14