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

/** Archivo square.x **/ /** Archivo client.

c **/
struct square_in
{ #include"errno.h"
/*input arg*/ #include"rpc/rpc.h"
long arg1; #include"square.h"
}; #include"stdio.h"
#include"stdlib.h"
struct square_out #include"math.h"
{
/*op result*/ int main(int argc,char **argv)
long res1; {
}; CLIENT *cl;
program SQUARE_PROG square_in in;
{ square_out *outp;
version SQUARE_VERS if(argc!=3)
{ {
square_out SQUAREPROC(square_in)=1; /*proc printf("\n\n error:insufficient arguments!!!");
no=1*/ exit(-1);
}=1; /*version no*/ }
}=0x31230000;/*prog no*/

/** Archivo server.c **/ cl=clnt_create(argv[1],SQUARE_PROG,SQUARE_VER


#include"rpc/rpc.h" S,"tcp");
#include"square.h" in.arg1=atol(argv[2]);
#include"stdio.h"
#include"stdlib.h" if(cl==NULL)
#include"math.h" {
printf("\nerror:%s",strerror(errno));
square_out *squareproc_1_svc(square_in *inp,struct exit(-1);
svc_req *rqstp) }
{
static square_out out; if((outp=squareproc_1(&in,cl))==NULL)
out.res1= inp->arg1 * inp->arg1; {
return(&out); printf("\nerror :%s",clnt_sperror(cl,argv[1]));
} exit(-1);
}

printf("\n\n result is : %ld",outp->res1);


exit(0);
}
/***** COMPILACION Y EJECUCION *****/
apt-get install rpcbind
gcc -c client.c -o client.o
gcc -c square_clnt.c -o square_clnt.o
gcc -c square_xdr.c -o square_xdr.o
gcc -o client client.o square_clnt.o square_xdr.o
gcc -c client.c server.c square_xdr.c
gcc -c server.c -o server.o
gcc -c square_svc.c -o square_svc.o
gcc -o server server.o square_svc.o square_xdr.o
./server
./client localhost 8 otra terminal

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