Вы находитесь на странице: 1из 2

RPC

Ejercicio 1.
El cdigo de partida incluye:

calculadora.x: Especificacin

servidor.c: Implementacin,

cliente.c: Ejemplo

XDR del interfaz remoto que exporta las cuatro


operaciones bsicas para enteros (suma, resta, multiplicacin y divisin)
conforme al esquema esperado por el skeleton de
Sun-RPC, de las 4 funciones exportadas
de cliente donde se muestra la forma en que realizan las
llamadas remotas a las funciones remotas exportadas.

Pasos a seguir
1. Descomprimir el paquete.
2. $ tar xzvf rpc1.tar.gz
3. $ cd rpc1

4. Comprobar el contenido del fichero calculadora.x con el interfaz remoto


o Usa el esquema de parmetros ''clsico'' que slo permite un argumento de
entrada en los procedimientos remotos
o Por esa razn se define la estructura entrada para contener los dos
operandos (arg1 y arg2) que se pasan a cada una de las cuatro operaciones
5. Compilar con rpcgen la definicin del interfaz remoto
6. $ rpcgen calculadora.x

Se generan los siguientes ficheros.


o calculadora.h: Fichero de cabecera con constantes y las definiciones de
las estructuras usadas como parmetros de entrada y como valores de salida.
o calculadora_clnt.c: Cdigo C con la implementacin del stub
o calculadora_svc.c: Cdigo C con la implementacin del skeleton

o calculadora_xdr.c: Cdigo C con la implementacin de las rutinas XDR


para aplanar/desaplanar los argumentos y el valor de retorno
Se peuden abrir con un editor y comprobar su estructura, las definciones de tipos de
datos, los prototipos de las funciones del stub y ver cmo son las llamadas
realizadas en stub y skeleton.
7. Compilar y lanzar el servidor
8. $ gcc -o servidor servidor.c calculadora_svc.c calculadora_xdr.c
9. $ ./servidor &

Se pueden comprobar los programas RPC registrados en el portmapper de una


mquina con la orden rpcinfo.
$ rpcinfo -p

Muestra el nm. de programa (en decimal) junto su nm. de versin [ambos


especificados en el fichero XDR calculadora.x] y sus puertos de escucha (tcp y
udp).
10. Compilar y ejecutar el cliente de ejemplo (en un terminal distinto)
11. $ gcc -o cliente cliente.c calculadora_clnt.c calculadora_xdr.c
12. $ ./cliente localhost &

Se puede probar a ejecutar las funciones remotas de otra mquina del laboratorio
poniendo su direccin IP en lugar de ''localhost''

Вам также может понравиться