MIM1
TD 9 de POOGL
Threads et Sockets

Vincent BOUDET
Bureau 343 (84-70)
email vboudet@ens-lyon.fr

19 avril 2001

A   But du TD

Le but de ce TD est d'utiliser les threads et les sockets pour faire un petit jeu basé sur une architecture client/serveur. Le serveur peut accepter plusieurs connexions client (donc plusieurs joueurs), chaque connexion étant gérée par un thread.

B   Les règles

Le serveur choisit un nombre au hasard entre 1 et 10. Un certain nombre de joueurs doivent se connecter avant que la partie commence. Ensuite, suivant leur ordre de connexion, ils jouent chacun leur tour en tapant un numéro au clavier. S'ils ont trouvé, le client s'arrête.

C   Description

Voici les classes dont nous aurons besoin :
Serveur :
c'est la classe qui contient la méthode main. C'est elle qui met en place un ServerSocket, qui attend les connexions, et qui créée un ServerThread chaque fois qu'une connexion est demandée. Elle gère également le tour de jeu, c.a.d. quand tel ou tel joueur joue.
ServeurThread :
cette classe s'occupe de gérer la communication entre le serveur et un seul client. Lorsque le client renvoie la valeur à trouver, ce thread s'arrête.
Synchronizer :
cette classe définit les méthodes qui permettent à chaque ServerThread d'attendre que tous les joueurs soient connectés ou d'attendre leur tour.
Client :
cette classe définit le comportement du client. Celui-ci se connecte au serveur, et attend que le ServerThread dédié à la connexion lui envoie quelque chose. À ce moment, le joueur peut taper un numéro qui est immédiatement envoyé au ServerThread.

C.1   Server.java

Voici le descriptif de cette classe :

C.2   ServerThread.java

Voici le descriptif de cette classe :

C.3   Synchronizer.java

Voici le descriptif de cette classe :

C.4   Client.java

Voici le descriptif de cette classe :

D   Réalisation

Question D.1   Puisque tout est décrit ci-dessus, à vous de jouer !

This document was translated from LATEX by HEVEA.