Année: 2018-2019
Travaux pratiques 5
Objectifs
- Comprendre la programmation client-serveur.
Client-Serveur
Un environnement client-serveur permet un mode de communication sur un réseau entre les programmes. Un de ces programmes est appelé serveur qui répond aux requêtes d’autres programmes appelés clients. Par exemple,
- Un client envoie un message au serveur et le serveur reçoit le message et le renvoie.
- Un client envoie l’opérateur et un/deux numéros et le serveur fait le calcul et envoie le résultat.
Référence : https://fr.wikipedia.org/wiki/Client-serveur
Pour simuler un environnement client-serveur, on va utiliser une seule machine en lançant deux terminaux. Sur un des deux terminaux exécutez le code du serveur. Sur l’autre, exécutez le code du client.
Exercice 5.1 ★
Téléchargez les fichiers suivants à partir d’e-campus : client.h, client.c, serveur.h, serveur.c, Makefile. Lisez bien tous les fichiers. Exécutez
$ make
et voyez les fichiers exécutables qui sont créés.
Ouvrez deux terminaux. Sur le premier terminal, exécutez
./serveur
et sur le second terminal
./client
Entrez un message et voyez les affichages sur les deux terminaux.
Modifiez la fonction recois_envoie_message (serveur.c). Quand le serveur reçoit un message, il demande à l’utilisateur de saisir un message et envoie ce message au client. Testez votre code. N’oubliez pas d’utiliser make (pour la compilation et la génération des fichiers exécutables).
Exercice 5.2 ★★
Vous avez remarqué les premiers caractères dans chaque message : ‘message’ suivi par :. Pour votre prochaine question, on utilisera calcule. Modifiez les fichiers client.c et serveur.c pour le support des calculs simples (+,-,*,...). Ajoutez une fonction envoie_operateur_numeros(...) dans le fichier client.c et recois_numeros_calcule(...) dans le fichier serveur.c. Le client envoie l’opérateur et un (ou deux) numéros et le serveur envoie le résultat. Par exemple, si le client envoie le message
calcule : + 23 45
Le serveur répond
calcule : 68
Testez votre code avec les numéros flottants et entiers.
Exercice 5.3 ★★★
Pour votre dernière question, téléchargez le dossier etudiant. Dans ce dossier, il y a 5 notes de 5 étudiants. Utilisez envoie_operateur_numeros (voir 6) pour calculer la somme total des notes de chaque étudiant ainsi que la moyenne de classe pour chaque sujet.
Fichiers
client.h, client.c, serveur.h, serveur.c
Instructions
- Ne pas oublier les commentaires (nom de fichier, objectif, auteurs, , les lignes importantes de code etc.). Les commentaires sont notés.
- N’oublier pas de mettre à jour le fichier README et ajouter les détails concernant votre deuxième exercice.
- Compte rendu en format .zip en un seul fichier.