Tutorial Rpc
Ejemplo de un archivo .x
add.x
Contenido:
struct intpair {
int a;
int b;
};
program ADD_PROG {version ADD_VERS {
int ADD(intpair) = 1;
} = 1;
} = 0x23451111;
Opciones de compilación
rpcgen -C add.x Para hacerlo compatible a ANSI C
rpcgen -a -Cadd.x Esto crea un template para cliente y servidor, además de un makefile
Como habrán visto el programa no hace nada, por lo cual es necesario modificar algún código, para ver que funcione
Modificar el servidor
/*
* insert server code here
*/
poner al final después de ese texto :
printf("llamada al servidor \n");
Se recomienda a fin de evitar errores, hacer losiguiente en el archivo makefile que genera el codigo.
Donde esté:
CFLAGS += -g
Cambiarlo por :
CFLAGS += -g -DRPC_SVC_FG
Donde este:
RPCGENFLAGS =
Cambiarlo por:
RPCGENFLAGS = -CLo que hace que el código generado sea compatible con ANSI C
Después de eso lo que hay que realizar es compilar el programa
Eso se puede hacer de 2 maneras distintas :
1) make -fmakefile.add
2) o bien renombrar el archivo makefile.add a otro archivo para correrlo sin parámetros
a) mv makefile.add makefile
b) make (Con esto se compilatodo el proyecto)
Después de lo anterior se desplegará una serie de mensajes similares a:
cc -g -DRPC_SVC_FG -c -o add_clnt.o add_clnt.c
cc -g -DRPC_SVC_FG -c -o add_client.o add_client.ccc -g -DRPC_SVC_FG -c -o add_xdr.o add_xdr.c
cc -g -DRPC_SVC_FG -o add_client add_clnt.o add_client.o add_xdr.o -lnsl
cc -g -DRPC_SVC_FG -c -o add_svc.o add_svc.c
cc -g -DRPC_SVC_FG -c -oadd_server.o add_server.c
cc -g -DRPC_SVC_FG -o add_server add_svc.o add_server.o add_xdr.o -lnsl
Se obtienen varios archivos “.o “ que son los ejecutables
Se corre el servidor primero...
Regístrate para leer el documento completo.