Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Download
Standard view
Full view
of .
Look up keyword
Like this
44Activity
0 of .
Results for:
No results containing your search query
P. 1
RPC en Ubuntu y C

RPC en Ubuntu y C

Ratings: (0)|Views: 9,289|Likes:
Un manual que nos permitira crear un servidor RPC y un cliente RPC con ubuntu
Un manual que nos permitira crear un servidor RPC y un cliente RPC con ubuntu

More info:

Published by: Jorge Andres Moreno Jaimes on Sep 23, 2012
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

01/12/2015

pdf

text

original

 
Jorge Andres Moreno Jaimes (jamper91) 
RPC en Linux con Lenguaje C 
Buenos dias compañeros, el dia de hoy les traigo un manual sobre cómo realizar RPC(Llamado de procedimiento remoto ) en linux con lenguaje C. Para realizar esto tenemosprimero que saber para qué nos sirve esto, y qué es RPC.El codigo lo pueden conseguir en mipagina. RPC(Remote Procedure Call) es un protocolo que nos permite ejecutar el código de algunotro programa desde otra pc, es decir yo puedo desde mi pc llamar a una aplicación en otrapc (cualquiera en el mundo, sabiendo su dirección IP), esto con el fin de aplicar los sistemasdistribuidos en nuestras aplicaciones, en otras palabras que una sola máquina no realiza todoel trabajo para ejecutar un software, algunas personas verán esto un poco inútil (pues algunosaún no hemos desarrollado algoritmos muy complejos) pero puede ser de gran importanciaen las aplicaciones móviles, pues como saben algunos teléfonos actuales aún no tienen unagran capacidad de procesamiento, entonces podremos diseñar nuestra aplicación para quese realice un procedimiento en algun servidor externo y nuestra aplicación haga solo cosassencillas como interfaz con usuario u otros. Ejemplos Gratis de C, java y muchos mas ...http://jamper91.hostei.com1 
 
Jorge Andres Moreno Jaimes (jamper91)Esta guia esta basada en otra guia muy buena de RPC (Remote Procedure Call) , solo que aquí complementaremos un poco el código del cliente y del servidor para poder ver sufuncionamiento. 
Requerimientos
: Primero que todo debemos tener alguna distribución de Linux (Ubuntu, Debian, etc) para poder ejecutar este código También debemos tener instalados los siguiente paquetes:portmaprpcbindSi no los tienes instalados o no sabes como instalarlos, debes abrir una terminal y escribir elsiguiente código:
sudo apt-get install portmapsudo apt-get install rpcbin
Tras haber realizado lo siguiente ya estamos listos para empezar. Como he dicho anteriormente, nos estamos basando en esta guia, asi que si tiene alguna duda pueden ir a esa pagina, pues tratare de ser un poco breve en el aspecto teórico. 
Pasos: 
1.Primero creamos un directorio donde colocaremos todos los archivos, en mi caso creeun directorio llamado RPC en Documentos, quedando mi ruta así:
 /home/jamper91a/Documentos/RPC/ 
2.Debemos crear un archivo que contendrá el código que deseamos llamar, en este casoserá un programa que se encarga de sumar dos números, para eso creamos un archivollamado suma.x que contendrá el siguiente código: struct sumandos{int sumando1;int sumando2;}; program PROGRAMA_SUMA {version VERSION_SUMA {int suma (sumandos) = 1;} = 1;} = 0x20000001; Para poder implementar RPC, las funciones solamente pueden recibir un parámetro,del tipo nativo (int,long,etc) o una estructura. Pero debido a que muchas funcionesnecesitan más de un parámetro, entonces necesitamos crear una estructura quecontenga los parámetros que deseemos.En el ejemplo se creó una estructura llamada sumandos, que contiene los números asumar.Para poder ver la explicación completa del código puedes visitar chuidiang.Ejemplos Gratis de C, java y muchos mas ...http://jamper91.hostei.com2 
 
Jorge Andres Moreno Jaimes (jamper91)3.Abrimos un terminal y nos dirigimos a la carpeta donde se encuentre el archivo suma.x(en mi caso “/home/jamper91a/Documentos/RPC/” ) y escribimos el siguiente comando: 
rpcgen -a suma.x 
 Este nos generara 7 ficheros (los cuales puedes ver su explicaciónaquí).De los cuales nos llama mas la atencion los archivossuma_client.csuma_server.c 4.Primero que todos vamos a editar el archivo suma_server.c para que el servidor realmente nos permita sumar los dos números, para eso en la consola digitamos:
sudo gedit suma_server.c 
 y editamos el código, para que nos quede así: int * suma_1_svc(sumandos *argp, struct svc_req *rqstp){static int result;result = argp->sumando1 + argp->sumando2;return &result;} 5.Ahora editaremos el archivo suma_client.c para que sea interactivo con el usuario, esdecir, esta aplicación se encargara de “conversar” con el usuario, pidiéndole los datosnecesario para que la aplicación pueda ejecutarse(en nuestro caso, pediremos los 2números a sumar, y mostraremos el resultado). Para todo eso digitamos el siguientecomando en consola:
sudo gedit suma_client.c 
 
programa_suma_1(char *host){CLIENT *clnt;int *result_1;sumandos suma_1_arg;/**Editor los valores que tendra la estructura*/printf("Por favor digite los elementos a sumar: \n a: ");scanf("%d",& suma_1_arg.sumando1);printf("b: ");scanf("%d",& suma_1_arg.sumando2); #ifndefDEBUGclnt = clnt_create (host, PROGRAMA_SUMA, VERSION_SUMA, "udp");if (clnt == NULL) {clnt_pcreateerror (host);exit (1);}#endif/* DEBUG */ result_1 = suma_1(&suma_1_arg, clnt);if (result_1 == (int *) NULL) {
Ejemplos Gratis de C, java y muchos mas ...http://jamper91.hostei.com3 

Activity (44)

You've already reviewed this. Edit your review.
RafaHidalgo liked this
1 hundred reads
1 thousand reads
AxelMZ91 liked this
Pablo Hernandez liked this
Rogermen78 liked this

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->