- Compagnie ~ Produits ~ Boutique ~ Communauté

Application de test


L'application de test de la libraire de sockets libSock peut être téléchargée dans la rubrique Téléchargement de cette page. Son installation requiert simplement d'extraire les fichiers de l'archive dans le répertoire de votre choix. Le dossier "Sources" contient les sources de l'application ainsi qu'un sous-dossier ("/libSock") contenant les fichiers d'en-têtes d'utilisation de la librairie de socket.

L'archive contient également deux dossiers permettant de compiler les sources sous Windows (projet Visual Studio) et sous Linux (makefile).

Compilation Linux


La compilation de l'application de test nécessite que la librairie de sockets soit déjà installée sur la machine. La procédure d'installation de libSock est décrite dans la rubrique Librairie de cette page.

Une fois libSock compilée et installée, il ne reste plus qu'à construire l'application de test proprement dite. Pour cela, extrayez l'archive du programme testScok dans le répertoire de votre choix et ouvrez une console dans le sous répertoire "/Linux". La commande de compilation est la suivante :

  • make -f testSock.mk all

Compilation Windows


Le projet Visual Studio contenu dans le répertoire Windows permet de compiler facilement la librairie. Le dossier contient également la librairie libSock déjà compilée et prête à l'emploi. "libSock.dll" est le binaire contenant le code tandis que "libSock.lib" consititue le fichier de déclaration des fonctions exportées qu'il faut inclure dans le projet pour que l'éditeur de liens fonctionne correctement.

Description


Une fois lancée, l'application de test crée trois tâches. La première simule un serveur auquel deux clients vont pouvoir se connecter. Les deux autres tâches simulent les clients en question. Les trois tâches tournent en parallèle et utilisent les fonctions de la libraire de sockets décrite dans ce tutoriel. Bien que généralement des clients et des serveurs s'exécutent dans des programmes séparés et sur des machines distinctes (en réseau), nous avons choisi ici de les exécuter dans la même application. En effet, une application peut légitimement créer un socket d'écoute et ensuite s'y connecter elle-même avec un autre socket. C'est ce que nous faisons ici afin de simplifier la mise en oeuvre du programme de test. L'adresse IP à utiliser pour se connecter à sois-même est "127.0.0.1".

La tâche qui joue le rôle de serveur commence par créer un serveur en écoute sur le port 5000. Ensuite, elle attend qu'exactement deux clients s'y soient connectés. Dès que s'est fait, le serveur attend que les clients lui envoient des requêtes. Celles-ci sont très simples, mais ont le mérite de bien illustrer une architecture client-serveur. Une requête est composée de trois champs. Les deux premiers sont des entiers avec lesquels il faut réaliser une opération. Le troisième champ est un entier qui décrit l'opération à réaliser. Dans le cadre de cet exemple, les opérations peuvent être soit une addition, soit une multiplication. Une fois que le message est lu, le serveur calcule le résultat et le renvoie au client. La tâche s'arrête dès que les deux clients se sont déconnectés.

Les deux tâches qui jouent le rôle de clients commencent par se connecter au port 5000 de l'adresse "127.0.0.1", c'est-à-dire sur le socket d'écoute du serveur. Ensuite, elles tirent aléatoirement l'opération qu'elles vont envoyer au serveur : addition ou multiplication de deux nombres compris entre 0 et 100. Une fois le message correspondant construit et envoyé, elles attendent de recevoir le résultat du serveur. Dès que 3 opérations ont été envoyées au serveur, elles se déconnectent et s'arrêtent.

Architecture client-serveur;

Il est évident qu'en pratique il est bien plus simple de réaliser la somme ou la multiplication de deux nombres nous même plutôt que d'en faire la demande à un serveur qui va le réaliser pour nous. Toutefois, cet exemple se veut plus didactique que pratique en illustrant les types de mécanismes mis en oeuvre dans une architecture client-serveur. Dans la pratique un serveur permet de réaliser des choses que vous ne pouvez/ne voulez pas faire vous même ; c'est donc un prestataire de services. Cela peut consister à consulter des données qui vous seraient inaccessibles autrement (comme vous le faite en ce moment même en accédant au serveur qui héberge ce site).


Dernière mis à jour : 05/2008
   

Copyright (C) 2010 Quantic-Storm, tous droits réservés