ВУЗ:
Составители:
21
ского стаба сформировано из имени IDL файла (без расширения) и символов
_C.C. Если имя (без расширения) имеет длину более шести символов, некото -
рые файловые системы могут не принимать полученное имя файла стаба. В
этом случае файлы стаба не должны использовать заданные по умолчанию
имена. Имя клиентского стаба можно изменить, воспользовавшись ключом
/cstub компилятора MIDL:
midl hello.idl -cstub mystub.c
Если в командной строке компилятора MIDL определены ваши собствен-
ные имена файлов, необходимо использовать эти имена и в последующих ко-
мандах компиляции и компоновки.
Программа сервера
Серверная сторона распределенного приложения сообщает системе, что
сервисы являются доступными, после чего переходит в состояние ожидания за-
просов клиента. В зависимости от размера приложения и привычек кодирова-
ния , можно выбирать, реализовывать ли удаленные процедуры в одном или в
большем количестве отдельных файлов. В данном примере основная подпро-
грамма помещена в исходный файл HELLOS.C, а удаленная процедура реали-
зуется в отдельном файле, именованном HELLOP.C. Польза от такой организа-
ции удаленных процедур в отдельных файлах заключается в том , что процеду-
ры могут быть скомпонованы с автономной программой для отладки кода,
прежде чем она будет преобразована в распределенное приложение. После то -
го , как программа заработает автономно, те же самые исходные файлы могут
компилироваться и компоноваться с серверным приложением . Подобно исход -
ному файлу клиентской прикладной программы, исходный файл программы
сервера должен включить заголовочный файл HELLO.H, чтобы получить опре-
деления данных и функций RPC, а также специфических для интерфейса дан -
ных и функций .
Вызов функций серверного API
В следующем примере сервер вызывает функции
RpcServerUseProtseqEp и RpcServerRegisterIf, чтобы сделать инфор-
мацию связывания доступной клиенту . Затем сервер сообщает о своей готовно-
сти принимать запросы клиента, вызвав функцию RpcServerListen:
/* файл: hellos.c (фрагмент) */
#include "hello.h" // заголовок, сгенерированный
// компилятором MIDL
21 ского стаба сформировано из имени IDL файла (без расширения) и символов _C.C . Если имя (без расширения) имеет длину более шести символов, некото- рые файловые системы могут не принимать полученное имя файла стаба. В этом случае файлы стаба не должны использовать заданные по умолчанию имена. Имя клиентского стаба можно изменить, воспользовавшись ключом /cstub компилятора MIDL: midl hello.idl -cstub mystub.c Если в командной строке компилятора MIDL определены ваши собствен- ные имена файлов, необходимо использовать эти имена и в последующих ко- мандах компиляции и компоновки. Программа сервера Серверная сторона распределенного приложения сообщает системе, что сервисы являются доступными, после чего переходит в состояние ожидания за- просов клиента. В зависимости от размера приложения и привычек кодирова- ния, можно выбирать, реализовывать ли удаленные процедуры в одном или в большем количестве отдельных файлов. В данном примере основная подпро- грамма помещена в исходный файл HELLOS.C, а удаленная процедура реали- зуется в отдельном файле, именованном HELLOP.C. Польза от такой организа- ции удаленных процедур в отдельных файлах заключается в том, что процеду- ры могут быть скомпонованы с автономной программой для отладки кода, прежде чем она будет преобразована в распределенное приложение. После то- го, как программа заработает автономно, те же самые исходные файлы могут компилироваться и компоноваться с серверным приложением. Подобно исход- ному файлу клиентской прикладной программы, исходный файл программы сервера должен включить заголовочный файл HELLO.H, чтобы получить опре- деления данных и функций RPC, а также специфических для интерфейса дан- ных и функций. Вызов функций серверного API В следующем примере сервер вызывает функции RpcServerUseProtseqEp и RpcServerRegisterIf , чтобы сделать инфор- мацию связывания доступной клиенту. Затем сервер сообщает о своей готовно- сти принимать запросы клиента, вызвав функцию RpcServerListen : /* файл: hellos.c (фрагмент) */ #include "hello.h" // заголовок, сгенерированный // компилятором MIDL
Страницы
- « первая
- ‹ предыдущая
- …
- 19
- 20
- 21
- 22
- 23
- …
- следующая ›
- последняя »