на главную | войти | регистрация | DMCA | контакты | справка | donate |      

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Э Ю Я


моя полка | жанры | рекомендуем | рейтинг книг | рейтинг авторов | впечатления | новое | форум | сборники | читалки | авторам | добавить



Листинг 16.9. Клиент, получающий и печатающий значения времени ожидания RPC

//sunrpc/square5/client.c

1  #include "unpipc.h"

2  #include "square.h"


3  int

4  main(int argc, char **argv)

5  {

6   CLIENT *cl;

7   square_in in;

8   square_out *outp;

9   struct timeval tv;

10  if (argc != 4)

11   err_quit("usage: client ");

12  cl = Clnt_create(argv[1], SQUARE_PROG, SQUARE_VERS, argv[3]);

13  Clnt_control(cl, CLGET_TIMEOUT, (char*)&tv);

14  printf("timeout = %ld sec, %ld usec\n", tv.tv_sec, tv.tv_usec);

15  if (clnt_control(cl, CLGET_RETRY_TIMEOUT, (char *) &tv) == TRUE)

16   printf("retry timeout = %ld sec, %ld usec\n", tv.tv_sec, tv.tv_usec);

17  in.arg1 = atol(argv[2]);

18  if ((outp = squareproc_1(&in, cl)) == NULL)

19   err_quit("%s", clnt_sperror(cl, argv[1]));

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

21  exit(0);

22 }


16.5. Тайм-аут и повторная передача | UNIX: взаимодействие процессов | Используемый протокол является аргументом командной строки