Écrire un serveur sermess.c et un client climess.c
sermess.c va initialiser une table interne d'objets ("iniobj.h"), créer une file de messages, puis se mettre en attente de l'arrivée de requêtes. La programmation de ce TD est grandement facilitée par le fait que la directive msgrcv(2) peut être bloquante.
climess.c va demander un numéro de client, récupérer ce numéro, envoyer 2 ou 3 requêtes au serveur sur la file de messages et lire les réponses.
Il n'est pas obligatoire d'implémenter tous les types de requêtes définies dans l'analyse ci-dessus. On fera en fonction du temps disponible.
Pour simplifier la réalisation :
choisir comme token un fichier local, par exemple "./login_sr03"
mettre comme drapeaux de création de la file : "IPC_CREAT|IPC_EXCL|0666"
décider que le serveur traite, au maximum, 3 clients simultanément (NB_MAX_CLT_SIM_ = 3), avant de rejeter proprement les autres
décider que le serveur traite, au maximum, 5 clients (NB_MAX_CLT = 5), avant de rejeter proprement les autres et de s'arrêter
décider que le serveur gère 5 types d'objets (NB_MAX_TYP_OBJ = 5)
Ceci permet d'utiliser dans le serveur des structures statiques pour gérer les clients, les paniers et les objets. En effet on s'intéresse dans cette UV aux problèmes de communication, pas de gestion de données.