2 * This is sample code generated by rpcgen.
3 * These are only templates and you can use them
4 * as a guideline for developing your own functions.
13 enum { OK, NOT_FOUND, EXISTS };
16 main(int argc, char *argv[])
20 char *localhost = "localhost";
23 const char *pname = argv[0];
25 // mostrar el pid del cliente
27 print_msg(stdout, "%s Cliente con pid = %d\n", pname, pid);
30 server_name = argv[1];
32 server_name = localhost;
34 // id del cliente, por default calculado en base al pid
36 client_id = atoi(argv[2]);
41 /* Crear el "handle" del cliente para llamar MESSAGEPROG en el
42 * server. Usamos "udp" para la comunicacion. */
43 cl = clnt_create(server_name, SETPRG, SETVERS, "udp");
46 /* No se pudo hacer contacto error y adios. */
47 clnt_pcreateerror(server_name);
52 int* (*rem_proc)(char*, int, int, CLIENT*);
53 while (std::getline(std::cin, line))
55 std::istringstream iss(line);
57 if (!(iss >> token)) return 0;
61 print_msg(stdout, "%s (%d): llamando a PUT:", pname, pid);
63 else if (token == "find")
66 print_msg(stdout, "%s (%d): llamando a FIND:", pname, pid);
68 else if (token == "del")
71 print_msg(stdout, "%s (%d): llamando a DEL:", pname, pid);
75 print_msg(stderr, "%s (%d): Invalid token %s!\n", pname, pid, token.c_str());
80 /* llamar al procedure en el server */
81 int* r = rem_proc((char*)token.c_str(), client_id, 0, cl);
84 /* error durante la comunicacion. */
85 clnt_perror(cl, server_name);
88 print_msg(stdout, " %s", token.c_str());
90 print_msg(stdout, "\n");
91 int* r = rem_proc("", client_id, 1, cl);
94 /* error durante la comunicacion. */
95 clnt_perror(cl, server_name);
98 print_msg(stdout, "%s (%d): el server responde %d\n", pname, pid, *r);
101 int* r = quit_1(client_id, cl);
104 /* error durante la comunicacion. */
105 clnt_perror(cl, server_name);
112 // vim: set et sw=4 sts=4 :