EXPLICATION DU PROJET – CLASSES RevisionGroup et GroupInfo
========================
1. CLASSE RevisionGroup
========================
Rôle :
La classe RevisionGroup représente un groupe de révision (salon de discussion).
Elle permet aux étudiants de communiquer, rejoindre un groupe et organiser des sessions.
Attributs :
- members : étudiants connectés (nom → adresse réseau)
- privateAddresses : adresses pour discussions privées
- archive : historique des sessions et messages importants
- udpSocket : communication UDP
Fonctionnement :
- start() : démarre le groupe, ouvre le socket UDP et s’enregistre au serveur
- listenUDP() : écoute les messages entrants
- handleUDPMessage() : traite les commandes
Commandes principales :
- JOIN : ajoute un étudiant et envoie un message de bienvenue
- MSG : diffuse un message à tous les membres
- PLAN : planifie une session et l’archive
- HEY : permet une discussion privée (échange IP/port)
- QUIT : retire un étudiant
Diffusion :
- broadcast : envoie à tous sauf l’émetteur
- broadcastAll : envoie à tous
Conclusion :
Cette classe gère toute la communication du groupe et agit comme un serveur léger.
========================
2. CLASSE GroupInfo
========================
Rôle :
La classe GroupInfo contient les informations d’un groupe de révision.
Elle est utilisée par le serveur, les groupes et les clients.
Attributs :
- name : nom du groupe
- filiere : filière
- niveau : niveau
- matiere : matière
- ip : adresse IP
- port : port UDP
Fonctionnement :
- Constructeur : initialise les données
- Getters : permettent d’accéder aux informations
- Classe immutable (pas de modification après création)
Méthode importante :
toRegisterMessage()
Elle transforme les données en message réseau :
REGISTER [matiere]
Exemple :
REGISTER M1-INFO-Reseaux [Link] 9101 INFO M1 Reseaux
toString() :
Permet un affichage lisible des informations.
Conclusion :
GroupInfo est une classe simple mais essentielle pour transporter les données du groupe.
========================
CONCLUSION GÉNÉRALE
========================
Le système combine :
- UDP pour la rapidité (groupes)
- TCP pour la fiabilité (serveur et privé)
Ces deux classes jouent un rôle central dans la communication du système distribué.