Test de rattrapage Réseau : Partie II

(10 mars 2001 – durée : 2h) M. Laporte - D. Mathieu - C. Pain-Barre
I.U.T. d'Aix en Provence - Département Informatique

Tout document autorisé

Important : vous ne vous occuperez pas de l'inclusion des headers. Vous pouvez utiliser tous nos Wrappers.

Sommaire

Fonction InitClients()
Fonction TraiterConnexion()
Fonction TraiterInfoDuClient()
Fonction TraiterClavier()
Fonction TraiterInfoDuServeur()


Fonctions manquantes

    Il reste encore à écrire les fonctions InitClients(), TraiterConnexion(), TraiterInfoDuClient(), TraiterInfoDuServeur() et TraiterClavier().

Fonction InitClients()

    La fonction initialise TabClients et la variable Mask (voir partie I).

Fonction TraiterConnexion()

    Ainsi que nous l'avons dit, un client n'est effectif que lorsque celui-ci a communiqué son pseudo. Cependant, il n'est pas souhaitable que le serveur attende ce dernier dans la fonction TraiterConnexion() car il ne peut pas répondre aux requêtes des autres clients. Une meilleure solution est de reporter la réception du pseudo dans TraiterInfoDuClient(). La fonction TraiterConnexion() se limite à traiter la demande de connexion et à mettre à jour la variable Mask (voir partie I).

Fonction TraiterInfoDuClient()

    Le serveur peut recevoir quatre sortes d'informations en provenance du client :
  1. son pseudo,
  2. une demande de liste des clients effectifs,
  3. un message à acheminer,
  4. une signalisation de demande de déconnexion.
    Les formats des trois premières informations ont été décrits dans le paragraphe "Message en provenance d'un client" de la partie I. Le terme "signaler" a été expliqué dans le paragraphe 'Client connecté' de la partie 1. Cette signalisation est détectable comme un événement en lecture.

    Si le destinataire d'un message à acheminer est inconnu, le serveur renvoie à l'expéditeur :

Rappel : les informations 1 et 4 doivent déclencher l'envoi de la liste des clients effectifs à tous les clients effectifs.

Fonction TraiterClavier()

    La fonction TraiterClavier() effectue deux traitements possibles :     Chaque appel à la fonction TraiterClavier() fait donc basculer d'un traitement à un autre.

    On aurait pu envisager d'enchaîner les deux traitements dans la fonction, mais on préfère retourner à l'attente d'un éventuel événement en provenance du serveur entre la saisie du destinataire et celle du message à envoyer.

Fonction TraiterInfoDuServeur()

    Le client peut recevoir trois sortes d'informations en provenance du serveur :     Ces informations sont à afficher.

© D. Mathieu    mathieu@romarin.univ-aix.fr
I.U.T.d'Aix en Provence - Département Informatique