le 10-05-2002 à |
|
PréambuleJe, sousigné Joël THIEFFRY, ai intégralement réalisé les serveurs et clients demandés dans le sujet proposé. "minfg120" est le login que m'ont donné les administateurs du CICT. "IoDream" est un de mes pseudonymes, celui que j'utilise sur les diverses mailing-list auxquelles je participe.Les fichiers de ce projet sont placés dans la domaine public, à l'exception de j_net.c et j_net.h qui font partie du projet j_net (que je n'ai pas encore officiellement publié) placé sous la licence Lesser Gnu Public Licence (ou LGPL). Je ne saurais être tenu pour responsable des éventuels disfonctionnements dûs à une utilisation, bonne ou mauvaise, d'un de ces programmes. |
Table des matières |
Nom du fichier | Description | |
---|---|---|
demo.sh | Script shell de démonstation du serveur et du client. | |
j_net.c | Code source de la librairie utilisée pour les sockets. | |
j_net.h | Interface de la librairie utilisée pour les sockets. | |
Makefile | Fichier utilisé par make pour compiler automatiquement les sources du projet. | |
sem_client.c | Code source du client. | |
sem_config.h | Interface où sont définies les constantes d'usage général. | |
sem_debug.h | Interface définissant une macro-fonction d'aide au débogage. | |
sem_gen.c | Code source d'une librairie contenant des fonctions génériques pour le serveur. | |
sem_gen.h | Interface d'une librairie contenant des fonctions génériques pour le serveur. | |
sem_gest.c | Code source de la fonction de gestion des sémaphores du serveur de sémaphores. | |
sem_interface.c | Code source des fonctions pour interfacer le client avec le serveur. | |
sem_interface.h | Interface des fonctions pour interfacer le client avec le serveur. | |
sem_server.c | Code source du serveur. | |
sem_server.h | Interface du serveur. | |
sem_sock_serv.c | Code source du serveur de sockets pour le serveur de sémaphores. | |
Copying | Version en anglais de la GNU LGPL. | |
Licence Publique Générale GNU Limitée.html | Version en français de la GNU LGPL. | |
Licence Publique Générale GNU.html | Version en français de la GNU GPL. | |
Logo_UPS.gif | Logo de l'Université Paul Sabatier, Toulouse III. | |
Fonc_Diag.gif | Image du diagramme de fonctionnenment du serveur. Utilisé dans le rapport. | |
Rapport_minfg120.html | Le rapport que vous êtes en train de lire. | |
Sujet_ProjetSockets.html | Sujet de ce projet, récupéré du site Internet du professeur. |
Primitive | Description | |
---|---|---|
CREATE id | Création du sémaphore d'identificateur id. | |
DESTROY id | Destruction du sémaphore d'identificateur id. | |
WAIT id | Attente sur le sémaphore d'identificateur id. | |
RELEASE id | Signalement du sémaphore d'identificateur id. | |
RESET | Réinitialisation du serveur de sémaphores. | |
OK | Primitive exécutée avec succés. | |
ERROR: semaphore already created | Erreur: vous avez essayé de recréer le sémaphore d'identificateur id qui a déjà été crée. | |
ERROR: semaphore not created yet | Erreur: vous avez essayé de détruire le sémaphore d'identificateur id qui n'a pas encore été crée. | |
ERROR: semaphore id out of range (max is xx) | Erreur: l'intervalle valide des identificateurs de sémaphore est compris entre 1 et xx. |
Client | Processus du Serveur de Sockets | Gestionnaire de Sémaphores |
---|---|---|
"Requête" |----------socket----------> | ||
lock_mutex | ||
"Requête" |---------pipePS2GE---------> | ||
<---------pipePS2GE---------| "Réponse" | ||
unlock_mutex | ||
"Réponse" <----------socket----------| |
Client | Processus du Serveur de Sockets | Gestionnaire de Sémaphores |
---|---|---|
"WAIT id" |----------socket----------> | ||
lock_mutex | ||
"WAIT id pid" |---------pipePS2GE---------> | ||
<---------pipePS2GE---------| "WAIT" | ||
unlock_mutex | ||
attente du déblocage du sémaphore id | ||
lock_mutex | ||
<---------pipePS2GE---------| "OK" | ||
<--/\/\/\--SIGUSR1--/\/\/\--| | ||
unlock_mutex | ||
"Réponse" <----------socket----------| "OK" |