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. Weitere Informationen finden Sie unter Automatische Bindungshandles.

Angenommen, Sie haben ein Clientprogramm entwickelt, das Remotefunktionen für den Zeitstempel aufgerufen hat. Hier machen die Stubs die ganze Arbeit, und der Client muss nur die generierte Headerdatei Auto.h enthalten, um die Funktionsprototypen für die Remoteprozeduren zu erhalten. Die Clientanwendung ruft die Remoteverfahren auf, als ob sie Aufrufe von lokalen Prozeduren hätten, 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 ausführen. Der Clientstub 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 von erhält, hängt von den Anforderungen Ihrer Anwendung ab. Das Setupprogramm, das Ihre Clientanwendung installiert, kann Bindungsinformationen in Umgebungsvariablen speichern, die sie erstellt. Bindungsinformationen können auch 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 ankn geben. Wenn ein Client mit der Ausführung beginnt, kann er seine Bindungsinformationen aus der Namensdienstdatenbank abrufen. Weitere Informationen finden Sie unter Importieren aus Name Service Databases.

Die erforderlichen Schritte für die Bindung mit impliziten und expliziten Handles werden in den folgenden Themen erläutert:

Eine kurze Übersicht über diese Themen finden Sie unter Verbinden von Client und Server.