Condividi tramite


Handle di associazione espliciti

Per il controllo massimo sul processo di associazione, le applicazioni client/server possono usare handle di associazione espliciti. Analogamente agli handle impliciti, gli handle di associazione espliciti consentono all'applicazione client di selezionare un server per eseguire le chiamate. Inoltre, gli handle di associazione espliciti consentono all'applicazione client/server di creare una sessione di comunicazione RPC autenticata. Con handle espliciti, il client può connettersi a più server ed eseguire procedure remote in più server. Le applicazioni client multithreading e asincrone possono anche connettersi a più server ed eseguire contemporaneamente più procedure remote.

L'applicazione client deve passare l'handle esplicito come parametro a ogni chiamata di procedura remota. Per essere conforme allo standard OSF, l'handle deve essere specificato come primo parametro in ogni routine remota. Tuttavia, le estensioni Microsoft per RPC consentono di specificare l'handle di associazione in altre posizioni. Per altre informazioni, vedere Microsoft RPC Binding-Handle Extensions.

Per creare un handle esplicito, dichiarare l'handle come parametro per le operazioni remote nel file IDL. L'esempio Hello, World può essere ridefinito per usare un handle esplicito, come illustrato di seguito:

/* IDL file for explicit handles */
 
[ 
  uuid(20B309B1-015C-101A-B308-02608C4C9B53),
  version(1.0) 
]
interface hello
{
  void HelloProc([in] handle_t h1,
                 [in, string] char *  pszString); 
}

È possibile combinare handle espliciti e impliciti in una singola interfaccia. Se una funzione ha un handle esplicito nell'elenco di parametri, verrà usato tale handle. Se una funzione in un'interfaccia che usa handle impliciti non specifica un handle esplicito, verrà usato l'handle implicito predefinito.