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