Clientseitige Bindung
Bindungshandles bestehen aus einer Protokollsequenz, dem Namen oder der Adresse eines Serverprogrammhostcomputers und einem Serverprogrammendpunkt. Daher muss Ihr Clientprogramm diese Informationen abrufen oder bereitstellen, um eine Bindung zu erstellen.
Wenn Ihr Clientprogramm automatische Bindungshandles verwendet, müssen Sie keinen speziellen Quellcode schreiben, um die Bindung zu erstellen oder zu verwalten. Der Clientstub ruft RPC-Funktionen auf, die zum Einrichten und Verwalten der Bindung erforderlich sind. Sie müssen nur angeben, dass Ihr Client automatische Bindungshandles in der Anwendungskonfigurationsdatei (Application Configuration File, ACF) verwendet, und die Schnittstelle entsprechend entwerfen. Ausführliche Informationen finden Sie unter Automatische Bindungshandles.
Angenommen, Sie haben ein Clientprogramm entwickelt, das Remotefunktionen zum Zeitstempeln aufgerufen hat. Hier erledigen die Stubs die gesamte Arbeit, und der Client muss nur die generierte Headerdatei Auto.h einschließen, um die Funktionsprototypen für die Remoteprozeduren abzurufen. Die Clientanwendung ruft die Remoteprozeduren auf, als wären sie Aufrufe lokaler Prozeduren, wie im folgenden Beispiel gezeigt:
/* 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);
}
Wie Sie im vorherigen Beispiel sehen können, muss die Clientanwendung keine expliziten Aufrufe der RPC-Laufzeitbibliotheksfunktionen vornehmen. Der Client-Stub verwaltet sie.
Wenn Ihre Anwendung implizite oder explizite Bindungshandles verwendet, muss der Client die Bindungsinformationen abrufen und die RPC-Funktionen aufrufen, um die Handles zu erstellen. Wo der Client die Bindungsinformationen abruft, hängt von den Anforderungen Ihrer Anwendung ab. Das Setupprogramm, das Ihre Clientanwendung installiert, kann Bindungsinformationen in von ihr erstellten Umgebungsvariablen speichern. Außerdem können Bindungsinformationen in einer anwendungsspezifischen Konfigurationsdatei gespeichert werden. Da Bindungsinformationen in Umgebungsvariablen oder Konfigurationsdateien in der Regel als Zeichenfolgen gespeichert werden, muss Ihre Clientanwendung die Zeichenfolge in eine Bindung konvertieren. In Windows XP/2000-Umgebungen können Bindungsinformationen aus Active Directory abgerufen werden. Weitere Informationen finden Sie unter Verwenden von Zeichenfolgenbindungen.
Die meisten Netzwerke verfügen über einen Namensdienst. Serverprogramme können sich selbst in der Namensdienstdatenbank ankündigen. Wenn ein Client mit der Ausführung beginnt, kann er seine Bindungsinformationen aus der Namensdienstdatenbank abrufen. Ausführliche Informationen finden Sie unter Importieren aus Name Service-Datenbanken.
Die schritte, die für die Bindung mit impliziten und expliziten Handles erforderlich sind, werden in den folgenden Themen erläutert:
Eine kurze Übersicht über diese Themen finden Sie unter Verbinden von Client und Server.