Fonctionnement de la partie Client
Le client a été allégé autant que possible, afin :
- qu'il puisse s'executer sur les machines les moins puissantes
- que l'ensemble des fonctionnalités soient centralisées sur le serveur, pour n'avoir aucune mise à jour des clients à effectuer lors de l'ajout ou du retrait de certaines fonctionnalités
Le client s'exécute dans deux threads différents, afin de pouvoir simultanément :
- Saisir de nouveaux messages: MonDialogue se résume en une simple boucle d'envoi du message saisi et d'attente de la réponse de la part du serveur :
while( true ){
try{//attente de la réponse de la part du serveur
Reponse rep = (Reponse)in.readObject();
if( rep==null ) throw new IOException();
if(!rep.toString().equals("")) System.out.println( rep );
}
catch(ClassNotFoundException e){ System.err.println(e); }
//fin de la communication
if( (saisie=Keyboard.getString()).toUpperCase().equals(CMDQUIT) ) {
deconnexion();
break;
}//envoi du message saisi
out.println(saisie);
}
- Ecouter les messages entrants: Ecoute se résume lui aussi en une simple boucle d'attente des messages des autres utilisateurs et de leur affichage:
while(true){
line = in.readLine();
if( line==null ) throw new IOException();
System.out.println( line );
}
Etant donné la simplicité du code du client, il ne devrait pas être trop compliqué de créer une interface graphique.
|