Привязка на стороне клиента
Дескриптора привязки состоят из последовательности протоколов, имени или адреса главного компьютера серверной программы и конечной точки серверной программы. Поэтому клиентская программа должна получить или предоставить эти сведения для создания привязки.
Если клиентская программа использует автоматические дескрипторы привязки, вам не нужно писать специальный исходный код для создания привязки или управления ею. Заглушка клиента вызывает функции RPC, необходимые для установки и поддержания привязки. Достаточно указать, что клиент использует автоматические дескрипторы привязки в файле конфигурации приложения (ACF), и спроектировать интерфейс соответствующим образом. Дополнительные сведения см. в разделе Автоматические дескрипторы привязки.
Предположим, например, что вы разрабатываете клиентская программа, которая вызывала функции удаленной метки времени. Здесь заглушки выполняют всю работу, и клиенту нужно включить только созданный файл заголовка Auto.h, чтобы получить прототипы функций для удаленных процедур. Вызовы клиентских приложений к удаленным процедурам выглядят так же, как если бы они были вызовами локальных процедур, как показано в следующем примере:
/* auto handle client application (fragment) */
#include <windows.h>
#include <stdio.h>
#include <time.h>
#include "auto.h" // header file generated by the MIDL compiler
void main(int argc, char **argv)
{
time_t t1;
time_t t2;
char * pszTime;
...
GetTime(&t1); // GetTime is a remote procedure
GetTime(&t2);
pszTime = ctime(&t1);
printf("time 1= %s\n", pszTime);
pszTime = ctime(&t2);
printf("time 2= %s\n", pszTime);
Shutdown(); // Shutdown is a remote procedure
exit(0);
}
Как видно из предыдущего примера, клиентскому приложению не требуется явные вызовы функций библиотеки времени выполнения RPC. Клиентская заглушка управляет ими.
Если приложение использует неявные или явные дескрипторы привязки, клиент должен получить сведения о привязке и вызвать функции RPC для создания дескрипторов. Расположение, из которого клиент получает сведения о привязке, зависит от требований приложения. Программа установки, устанавливающая клиентское приложение, может хранить сведения о привязке в создаваемых переменных среды. Он также может сохранять сведения о привязке в файле конфигурации конкретного приложения. Так как сведения о привязке в переменных среды или файлах конфигурации обычно хранятся в виде строк, клиентскому приложению потребуется преобразовать строку в привязку. В средах Windows XP/2000 сведения о привязке можно получить из Active Directory. Дополнительные сведения см. в разделе Использование строковых привязок.
В большинстве сетей есть служба имен. Серверные программы могут объявлять себя в базе данных службы имен. Когда клиент начинает выполнение, он может получить сведения о своей привязке из базы данных службы имен. Дополнительные сведения см. в разделе Импорт из баз данных службы имен.
Действия, необходимые для привязки с помощью неявных и явных дескрипторов, рассматриваются в следующих разделах:
Краткий обзор этих разделов см. в статье Подключение клиента и сервера.