next up previous contents
Next: Разделение данных Up: Разработка высокоуровневых приложений RPC Previous: Разработка высокоуровневых приложений RPC   Contents

Определение протокола

Для передачи и приема имени каталога и его содержимого можно использовать простые строки, заканчивающиеся пустым указателем. Кроме того, передача этих параметров включена непосредственно в код сервера и клиента.

После этого нужно определить номера программы, процедуры и версии для клиента и сервера. Это можно сделать автоматически, используя rpcgen, или на базе предопределенных макросов упрощенного интерфейса. В примере номера определены вручную.

Сервер и клиент должны заранее согласовать, что они будут использовать логические адреса (физические адреса не имеют значения, поскольку они скрыты от разработчика приложения).

Номера программы определяются стандартным способом:

0x00000000 - 0x1FFFFFFF: Определены Sun

0x20000000 - 0x3FFFFFFF: Пользовательские 

0x40000000 - 0x5FFFFFFF: Переходные

0x60000000 - 0xFFFFFFFF: Резервированные 

Для номера программы выбирается пользовательский диапазон. Номера версии и процедуры установлены согласно стандартной практике.

DIR_SIZE определяет размер буфера для каталога в программах сервера и клиента.

Теперь файл rls.h содержит:

#define DIR_SIZE 8192

 /* номер программы сервера */

#define DIRPROG ((u_long) 0x20000001)

#define DIRVERS ((u_long) 1) /* номер версии */

#define READDIR ((u_long) 1) /* номер процедуры */



2004-06-22