B. L'APPLICATION SERVEUR
L'application serveur est le chef d'orchestre, fournisseur du jeu
d'échecs et aussi l'aiguilleur des informations provenant d'un client
vers un autre. Dans cette application nous nous sommes beaucoup investi dans
l'utilisation des threads.
L'application est dotée d'un fichier d'aide de
dernière génération (.chm) aussi explicite que complet.
C'est un assez gros logiciel vu sa composition mais moins
impressionnant que le client.
Notre application Serveur possède au total :
v 8 Classes d'objets,
v 40 Méthodes ou Fonctions,
v 1 Méthode Déléguée,
v 4 winForms qui sont l'interface principale, celle de la
configuration, de l'Apropos de, et de l'outil de résolution DNS qu'on a
ajouté pour aider l'administrateur dans ses différentes
recherches.
I. Architecture du Serveur
Architecture structurée et représentée dans
cette image ci - dessous.
Figure 1 : Architecture de
l'application Serveur
II. Les principales
Classes, Méthodes et leurs rôles
1. Les principales classes
Figure 1 : Les principales
classes de l'application Serveur
La classe Program : C'est le point d'entrée principale de
l'application.
La classe Server_Form : Classe/Formulaire principal du
Serveur Initialise une classe Serveur et la commande suivant l'appui sur les
différents boutons / controles du formulaire.
La classe Server : Classe gérée par le
formulaire "Form_Server". Elle gère tous les échanges TCP avec
les clients et l'attente par les "TCPListener".
La classe Clients : Classe représentant un client du
serveur Contient les infos réseaux (TCPCLIENT, STREAMWRITER) mais aussi
le pseudo.
La classe UpdateArgs : Classe représentant les
paramètres lors de la génération d'un
événement CoDeco ( classe Serveur )ou d'un
événement Update( modification de la liste des clients) (classe
Lanceur_Thread).
La classe Lanceur_thread : Classe gérant l'appel d'un
Thread avec des paramètres, contient la liste des clients
connectés au serveur et le client courant.
2. Les méthodes de la classe
Server
La méthode actualisation_infos() : Gère
l'actualisation des données, la liste de tous les clients du serveur
à tous les clients. En cas lors d'un envoi, le client est
déconnecté ( une déconnexion génère un
événement dans le but de l'afficher sur le formulaire ).
La méthode ecoute_canal_data() : Méthode
d'écoute sur le port DATA Attends un client, puis créé un
thread qui va s'occuper de cette connexion DATA.
La méthode ecoute_canal_infos() : Méthode
d'écoute sur le port attend un client, puis créé un thread
qui va s'occuper de cette connexion INFOS ( Vérifie aussi le nombre de
clients maximum, renvoie un événement lors d'une connexion ).
La méthode server() : Constructeur Créer les
TcpListener sur les deux ports ( infos et communication pour les parties ).
La méthode my_thread_update() : Méthode
appelée au début de l'échange un client permet de
renseigner les infos provenant du clients dans la liste des clients du Serveur
de type List.
La méthode infos() : Renvoie une chaîne
contenant toutes les infos des clients actuellement connectés, chaine
contenant les infos de tous les clients ( nom, ip, port client, id ).
La méthode stats() : Renvoie une chaine contenant les
stats du serveur, nombre de clients, nombre de clients max, Version de l'OS,
Nom de la machine Utilisation Mémoire, Nom de l'utilisateur en cours,
Les ports utilisés.
La méthode stop() : Arrête l'instance de la
classe Serveur ( les TcpListeners, les threads, déco de tous les
clients, ... ).
La méthode start() : Méthode démarrant
le serveur ( appelée par le formualaire ), réussite du
démarrage du serveur ( true or false )
L'evenement codecoclient : Evénement lancé
lors de la connexion/déconnexion d'un client permet la mise a jour du
coté formulaire du serveur.
|