1998-99
TP
Communications entre processus distants en ATM
Mise en oeuvre des sockets sous ATM
Gabriel DUBOIS et Mathieu IMRAZENE
Sur une machine SVR4 (ici, sur Solaris), ajouter a la compilation :
-lsocket (pour les sockets)
-lnsl (pour htons...)
-latm (pour l'atm)
On enverra le(s) fichier(s) source(s) traitant l'exercice et le makefile
permettant leur bonne utilisation à :
On adoptera les notations suivantes:
C'est sur ce type de canevas que l'on construit de nombreuses applications distribuées.
Ici, le serveur se contente d'attendre les demandes des clients distants. La gestion de la communication sera prise en charge par un processus fils, pendant que le serveur se remet en attente de demande de connexions d'autres clients.
Schéma de principe, après fin de l'attente sur accept, le serveur créé un processus fils, ce dernier fermera le socket d'écoute, tandis que le serveur fermera celui de communications :
Le serveur se libère ainsi de la gestion des communications pour se consacrer à l'écoute des demandes de connexions dont le nombre est limité par listen :
On vous demande de faire tourner les deux programmes suivant et d'en comprendre le fonctionnement afin de pouvoir mener à son terme l'exercice qui vous est proposé par la suite.
Le serveur sera de préférence lancé :
- sur une machine différente de celle des clients,
- dans une autre fenêtre, sur la machine courante.
On utilisera la commande asxmon pour suivre les dialogues entre
les clients et les serveurs.
Remarque :
SIGCHLD est géré : message envoyé au père à la mort du processus fils.
Fonctionnement de l'application :
on lancera plusieurs processus dans
des fenêtres se trouvant sur des sites
différents et on initialisera la communication en rentrant un
texte au clavier pour l'un des processus.
Il est conseillé d'utiliser mlink et de le modifier légèrement afin d'attendre une entrée de l'utilisateur.
Comment obtenir le(s) port(s) d'entrée et
l'(es) adresse(s) des destinataires :
l'application va lire dans un fichier de configuration les couples (adresse-IP, port)
du (ou des) destinataire(s) vers lequel (ou lesquels) elle émet.