다음을 통해 공유


명시적 바인딩 핸들

바인딩 프로세스를 최대한 제어하기 위해 클라이언트/서버 애플리케이션은 명시적 바인딩 핸들을 사용할 수 있습니다. 암시적 핸들과 마찬가지로 명시적 바인딩 핸들을 사용하면 클라이언트 애플리케이션이 호출을 실행할 서버를 선택할 수 있습니다. 또한 명시적 바인딩 핸들을 사용하면 클라이언트/서버 애플리케이션이 인증된 RPC 통신 세션을 만들 수 있습니다. 명시적 핸들을 사용하면 클라이언트가 둘 이상의 서버에 연결하고 여러 서버에서 원격 프로시저를 실행할 수 있습니다. 다중 스레드 및 비동기 클라이언트 애플리케이션은 여러 서버에 연결하고 동시에 여러 원격 프로시저를 실행할 수도 있습니다.

클라이언트 애플리케이션은 명시적 핸들을 각 원격 프로시저 호출에 매개 변수로 전달해야 합니다. OSF 표준을 준수하려면 각 원격 프로시저에서 핸들을 첫 번째 매개 변수로 지정해야 합니다. 그러나 RPC에 대한 Microsoft 확장을 사용하면 다른 위치에서 바인딩 핸들을 지정할 수 있습니다. 자세한 내용은 Microsoft RPC Binding-Handle 확장을 참조하세요.

명시적 핸들을 만들려면 IDL 파일의 원격 작업에 대한 매개 변수로 핸들을 선언합니다. Hello, World 예제는 다음과 같이 명시적 핸들을 사용하도록 다시 정의할 수 있습니다.

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

단일 인터페이스에서 명시적 및 암시적 핸들을 결합할 수 있습니다. 함수에 매개 변수 목록에 명시적 핸들이 있는 경우 해당 핸들이 사용됩니다. 암시적 핸들을 사용하는 인터페이스의 함수가 명시적 핸들을 지정하지 않으면 기본 암시적 핸들이 사용됩니다.