Associazione lato client

Gli handle di associazione sono costituiti da una sequenza di protocollo, dal nome o dall'indirizzo di un computer host del programma server e da un endpoint del programma server. Pertanto, il programma client deve ottenere o fornire queste informazioni per creare un'associazione.

Se il programma client usa handle di associazione automatici, non è necessario scrivere codice sorgente speciale per creare o gestire l'associazione. Lo stub client chiama le funzioni RPC necessarie per stabilire e gestire l'associazione. È necessario specificare che il client usa handle di associazione automatici nel file di configurazione dell'applicazione e progettare di conseguenza l'interfaccia. Per informazioni dettagliate, vedere Handle di associazione automatica.

Si supponga, ad esempio, di aver sviluppato un programma client che ha chiamato funzioni remote di timestamp. In questo caso, gli stub eseguono tutto il lavoro e il client deve includere solo il file di intestazione generato Auto.h per ottenere i prototipi di funzione per le procedure remote. Le chiamate dell'applicazione client alle routine remote vengono visualizzate come se fossero chiamate a procedure locali, come illustrato nell'esempio seguente:

/* 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);
}

Come si può notare nell'esempio precedente, l'applicazione client non deve effettuare chiamate esplicite alle funzioni della libreria di runtime RPC. Lo stub client li gestisce.

Se l'applicazione usa handle di associazione impliciti o espliciti, il client deve ottenere le informazioni di associazione e chiamare le funzioni RPC per creare gli handle. La posizione in cui il client ottiene le informazioni di associazione da dipende dai requisiti dell'applicazione. Il programma di installazione che installa l'applicazione client può archiviare le informazioni di associazione nelle variabili di ambiente create. Può anche salvare le informazioni di associazione in un file di configurazione specifico dell'applicazione. Poiché le informazioni di associazione nelle variabili di ambiente o nei file di configurazione vengono in genere archiviate come stringhe, l'applicazione client dovrà convertire la stringa in un'associazione. Negli ambienti Windows XP/2000 le informazioni di associazione possono essere recuperate da Active Directory. Per altre informazioni, vedere Uso delle associazioni di stringhe.

La maggior parte delle reti ha un servizio dei nomi. I programmi server possono annunciarsi nel database del servizio dei nomi. Quando un client inizia l'esecuzione, può ottenere le informazioni di associazione dal database del servizio dei nomi. Per informazioni dettagliate, vedere Importazione da database del servizio dei nomi.

I passaggi necessari per l'associazione con handle impliciti ed espliciti sono descritti negli argomenti seguenti:

Per una breve panoramica di questi argomenti, vedere Connessione del client e del server.