Bonjour tout le monde ,
mon problème c'est que je ne sais pas quoi faire sur un projet qui nous ai proposé par notre professeur ce que je veux de vous si il y en a parmis vous quelqu'un qui a deja compilé ce programme qu'il me le passe sinon si quelqu'un sais comment faire pour realisé cette application qu il n hézite pas a m aidé s'il vous plait il m aidera énormément bon voici le problème vous pouvez meme aller le voir sur ce lien
sinon voilà l'énoncé (j'espère que j 'ai frappé à la bonne porte :p):
L’objectif de ce projet est de programmer une application de “chat” (à la fois le serveur et le
client) en utilisant l’interface de programmation POSIX.
Un programme serveur centralise les échanges. Un message tapé dans la fenêtre d'un client
est transmis au serveur sous forme de requête à chaque retour chariot. Une requête contient
l'identifiant du client (UID, PID) ainsi que le contenu du message. Son type est le suivant :
typedef struct req {
int sender_uid;
int sender_pid;
char msg[1024];
} chat_request;
Le serveur récupère les requêtes des clients en venant lire dans un tube dédié. Il existe deux
requêtes particulières :
1. Une requête pour demander à participer au chat, dont le contenu sera "JOIN".
2. Une requête pour demander à quitter le chat, dont le contenu sera "QUIT".
Ces requêtes spécifiques amènent le serveur à rajouter ("JOIN") ou à supprimer ("QUIT") le
client dans une liste des participants, puis à envoyer un signal au client pour lui signifier le
traitement de sa requête. Un client ne peut commencer à émettre des messages qu'après avoir
reçu le signal du serveur lui indiquant qu'il est enregistré. Inversement, un client ne peut se
terminer normalement tant qu'il n'a pas reçu un signal adéquat du serveur.
Toutes les autres requêtes client seront considérées comme des requêtes messages et seront
retransmises aux autres clients participant à l'application.
A chaque réception de requête message, le serveur recopie celle-ci dans un segment de
mémoire partagée dédié aux réponses, puis attend que tous les clients aient lu le message
avant de transmettre le message suivant. La synchronisation des lectures/écritures dans le
segment se fera au moyen de sémaphores.
La figure ci-dessous représente le traitement d’une requête client.
SERVER
request replies
client client client
Il vous est demandé de fournir un délivrable répondant à ce cahier des charges. En
particulier, vous rédigerez un document au format PDF, accompagné d'une version papier,
détaillant l'architecture de l'application :
Rôle de chaque processus au sein du programme client et du programme serveur
Mécanismes de communication (tubes, mémoire partagée, ...)
Mécanismes de synchronisation (signaux, sémaphores, ...)
Ce document s'attachera à décrire le fonctionnement de chacun de ces composants ainsi que
les valeurs initiales des variables et sémaphores. Il contiendra également un mini-manuel de
l'utilisateur expliquant comment utiliser votre application.
j'attends avec impatience votre réponse .
Partager