A.3.4 Fichier C du client
/*
* This is sample code generated by rpcgen.
* These are only templates and you can use them
* as a guideline for developing your own functions.
*/
#include "calc.h"
void
/** MODIFICATION DE CODE : ajout des operandes en parametre **/
calc_prog_1( char* host, int x, int y )
/** FIN DE MODIFICATION DE CODE **/
{
CLIENT *clnt;
int *result_1;
operandes add_1_arg;
int *result_2;
operandes sub_1_arg;
clnt = clnt_create(host, CALC_PROG, CALC_VERSION, "udp");
if (clnt == NULL) {
clnt_pcreateerror(host);
exit(1);
}
/** AJOUT DE CODE : initialisation du parametre de la RPC **/
add_1_arg.x = x ; add_1_arg.y = y ;
/** FIN D'AJOUT DE CODE **/
result_1 = add_1(&add_1_arg, clnt);
if (result_1 == NULL) {
clnt_perror(clnt, "call failed:");
}
/** AJOUT DE CODE : affichage du resultat de la RPC **/
printf("%d + %d = %d\n",add_1_arg.x,add_1_arg.y,*result_1);
/** FIN D'AJOUT DE CODE **/
/** AJOUT DE CODE : initialisation du parametre de la RPC **/
sub_1_arg.x = x ; sub_1_arg.y = y ;
/** FIN D'AJOUT DE CODE **/
result_2 = sub_1(&sub_1_arg, clnt);
if (result_2 == NULL) {
clnt_perror(clnt, "call failed:");
}
/** AJOUT DE CODE : affichage du resultat de la RPC **/
printf("%d - %d = %d\n",sub_1_arg.x,sub_1_arg.y,*result_2);
/** FIN D'AJOUT DE CODE **/
clnt_destroy( clnt );
}
main( int argc, char* argv[] )
{
char *host;
/** AJOUT DE CODE : variables pour les operandes **/
int x,y;
/** FIN D'AJOUT DE CODE **/
/** MODIFICATION DE CODE : nouvelle syntaxe **/
if(argc < 4) {
printf("usage: %s server_host op1 op2\n", argv[0]);
/** FIN DE MODIFICATION DE CODE **/
exit(1);
}
host = argv[1];
/** MODIFICATION DE CODE : recuperation et utilisation des operandes **/
x = atoi(argv[2]);
y = atoi(argv[3]);
calc_prog_1( host, x, y );
/** FIN DE MODIFICATION DE CODE **/
}