/* * Udaljeni RPC klijent * Dinko Korunic, 36355514, kreator@srk.fer.hr * Fri Jan 18 10:24:29 CET 2002 */ #include #include #include #include "echo.h" int main(int argc, char **argv) { CLIENT *clnt; echo_res *result; echo_reply value; echo_request req; char *server; /* provjeri ulazne argumente */ if (argc != 3) { fprintf(stderr,"Usage: %s hostname message\n", argv[0]); exit(EXIT_FAILURE); } /* servername ptr u server varijablu */ server = argv[1]; /* stvori klijent rucku :-) */ if ((clnt = clnt_create(server, ECHOPROG, ECHOVERS, "tcp")) == NULL) { clnt_pcreateerror(server); exit(EXIT_FAILURE); } /* napuni strukturu */ req.message = argv[2]; time(&req.request_time); /* pogledaj sto vraca posluzitelj pri spajanju */ if ((result = echo_1(&req, clnt)) == NULL) { clnt_perror(clnt, server); exit(EXIT_FAILURE); } /* ima li kakav errno pri povratku sa posluzitelja */ if (result->rpcerrno) { errno = result->rpcerrno; perror("Remote RPC error"); exit(EXIT_FAILURE); } /* pogledaj napokon i vraceni rezultat */ if (result) { time_t remotetime; value = result->echo_res_u.reply; remotetime = value.respond_time; printf("Count: %d\n" "Response time: %s", value.count, ctime(&remotetime)); } /* ugasi "rucku" :-) */ clnt_destroy(clnt); exit(EXIT_SUCCESS); }