Привязка на стороне клиента
Дескриптор привязки состоит из последовательности протоколов, имени или адреса хост-компьютера серверной программы и конечной точки серверной программы. Поэтому клиентская программа должна получить или предоставить эти сведения для создания привязки.
Если в клиентской программе используются автоматические дескрипторы привязки, вам не нужно писать специальный исходный код для создания или управления привязкой. Заглушка клиента вызывает функции 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 во время выполнения. Stub клиента управляет ими.
Если ваше приложение использует неявные или явные дескрипторы привязки, клиент должен получить сведения о привязке и вызвать функции RPC для создания дескрипторов. Где клиент получает сведения о привязке, зависит от требований приложения. Программа установки, устанавливающая клиентское приложение, может хранить сведения о привязке в создаваемых переменных среды. Кроме того, он может сохранять сведения о привязке в файле конфигурации для конкретного приложения. Так как сведения о привязке в переменных среды или файлах конфигурации обычно хранятся в виде строк, клиентскому приложению потребуется преобразовать строку в привязку. В средах Windows XP/2000 данные привязки можно получить из Active Directory. Дополнительные сведения см. в разделе Использование строковых привязок.
Большинство сетей имеют службу имен. Серверные программы могут объявлять себя в базе данных службы имен. Когда клиент начинает выполнение, он может получить сведения о привязке из базы данных службы имен. Дополнительные сведения см. в импорте из баз данных службы имен.
Действия, необходимые для привязки с неявными и явными дескрипторами, рассматриваются в следующих разделах:
Краткий обзор этих тем см. в разделе «Подключение клиента и сервера» .