Projet de programmation JAVA
Nicolas Becavin, Boris Gaillard
Le projet consiste à implémenter un programme de Talk
(conversation entre 2 personnes en temps réel au clavier) et un
serveur permettant la gestion des connexions, un dans le même
principe qu' ICQ.
Le programme
serveur permet de mettre en connexion les utilisateurs par
l'intermédiaire d'un réseau IP. Il faut le lancer sur une
machine dont l'adresse est bien sur connue.
Celui-ci apparait
alors avec une fenêtre unique, dans laquelle apparaissent tous
les utilisateurs connectés.
Chaque programme de
Talk peut se connecter directement à un utilisateur en tapant
son adresse IP dans le menu "Connection/Connexion à un
utilisateur".
Il est aussi possible
de passer par l'intermediaire d'un serveur qui lui enverra une
liste de noms et qui le rendra visible aux autres utilisateurs.
Il faut alors passer par le
menu
"Connection/Connexion au serveur".
Une fois la connexion effectuée a un
serveur, celui-ci renvoie la liste des utilisateurs déja
connectés. Une liste de boutons se crée dans le programme de
Talk et il suffit de cliquer sur l'un deux pour se connecter à
la personne correspondante.
Lors de connexion une fenêtre apparait avec 2
zones de texte. Celle du haut permet de rentrer du texte qui sera
affichée chez l'utilisateur distant. Celle-du bas affiche le
texte reçu.
Il est possible de changer le nom qui est
utilisé pour apparaitre aux autre utilisateurs avec al commande
: "Connection/NickName".
Il existe 2 programme qui sont donc le Talk et le serveur :
Le package Common comporte des parties communes aux 2
programmes. Il s'agit notamment de classes servant à la
communication sur le réseau.
Nous verrons plus loin que des classes descendent de Dispatcher
et de ConnexionServer.
Ce programme est séparé en 2 parties :
Une première partie gère la connexion directe avec les clients.
Il s'agit de la partie imlpémentée pour le mini-projet Java.
Une deuxieme partie gère la communication avec le serveur.
Celle-ci se fait par l'intermédiaire de la classe DispatcherServer
qui descend de Dispatcher.
La classe ServerInterface qui utilise une instance de DispatcherServer,
gère la communication avec le serveur et réagit en fonction des
commandes envoyée par celui-ci.
Parmis l'interface, il existe des boite de dialogue pour la
mise a jour des paramètres. Elles sont implémentées dans les
classes : DlgBoxGetNickName, About,
FrameHostPort et FrameHostClient.
La classe PanelListUser qui descend de Panel,
affiche la liste des boutons par l'intermediaire desquels il est
possible de se connecter à un utilisateur.
De la même facon que dans le programme de Talk, la communication se fait par l'intermédiaire de la classe Dispatcher et une classe Serveur qui descend de ConnexionServeur est à l'écoute d'une nouvelle connexion.
Une liste d'utilisateurs est gére dans la classe UserList
qui est du type Observable. En effet, la mise à jour de cette
liste entraine un rafraichissement de la fenétre. Cette classe
possède une liste d'instances de la classe User.
Celle-ci possède les informations sur chaque personne
connectée.
Une classe daemonTestList permet la verification en
permanence de la validité de la liste des personnes connectées.
Si une déconnexion survient, elle est alors répercutée à tous
les clients.