Tutoriel d'Informatique sur le protocole réseau Remote Procedure Call (RPC). Deux procédures sont présentées : l'utilisation du rpcgen et le développement d'une application sur un ensemble de fichiers gérés par un serveur à distance.
[...] Que se passe-t-il ? Remarque sur les fichiers à écrire: Le fichier serv_carre.c. Ce sont les corps des fonctions traitant les services proposés, ici les fonctions s'appellent rac_1 et carre_1 Le fichier cli_carre.c. On y écrit la fonction main du client, les appels RPC vers le serveur ont été donnés par rpcgen dans carre_clnt.c. A faire avant de terminer: Afin de ne pas laisser fonctionner des serveurs superflus vous devez supprimer les services RPC que vous avez créés: 1. Exécute rpcinfo sur le site où tourne (ent) le(s) serveur(s) Exécute rpcinfo avec les options utiles (voir le man) 3. [...]
[...] Une partie de son contenu est donné ci-dessous: carre.x : utilisation de rpcgen program CARRE_PROG { version CARRE_VERS { int CAR (int) = double RAC (int) = } = } = ; sera remplacé par le numéro de service. Exécuter rpcinfo pour savoir quels sont les numéros déjà utilisés. La commande rpcgen carre.x va créer les fichiers suivants: carre.h carre_svc.c carre_clnt.c Pas de carre_xdr.c puisque on utilise les filtres XDR de base. Il restera donc à écrire les fichiers: serv_carre.c qui complète carre_svc.c cli_carre.c qui complète carre_clnt.c 1. Avec rpcgen: créer les fichiers à partir de carre.x 2. [...]
[...] p est l'adresse de la variable qui va récupérer la valeur de l'enregistrement lu (dans le cas d'une lecture) et p est la variable qui contient la valeur de l'enregistrement à écrire (dans le cas d'une écriture). Ces deux fonctions doivent retourner: : lorsque l'indice passé ne correspond pas à un emplacement dans le tableau maintenu par le serveur pour gérer les fichiers ouverts. Cette valeur est également renvoyée lorsque le fichier demandé est fermé; 0 : lorsqu'il y un problème au niveau de la lecture/écriture de l'enregistrement; 1 : en cas de succès. int RemoteCloseFile 1. Mettre en œuvre la librairie qui fournit ces fonctions Ecrire un programme principal qui fait appel à cette librairie. [...]
[...] Ré exécute rpcinfo sur ce site pour vérifier que les serveurs sont arrêtés. Exercice 2 Nous désirons développer une application client/serveur manipulant un ensemble de fichiers (qui contiennent des enregistrements de type personne) gérés par un serveur distant. Définition de la structure personne: typedef char NomEnf[15] ; struct personne { char Nom[30] ; char Prenom[30] ; char Adresse[30] ; NomEnf TabNomEnfs[5] ; } ; typedef struc personne Personne ; Cette application se base sur une librairie contenant les fonctions suivantes: int RemoteOpenFile (char *FileName, char Mode) Permet d'ouvrir un fichier dont le nom est FileName ; mode est le mode d'ouverture du fichier. [...]
Source aux normes APA
Pour votre bibliographieLecture en ligne
avec notre liseuse dédiée !Contenu vérifié
par notre comité de lecture