클라이언트 쪽 바인딩

바인딩 핸들은 프로토콜 시퀀스, 서버 프로그램 호스트 컴퓨터의 이름 또는 주소 및 서버 프로그램 엔드포인트로 구성됩니다. 따라서 클라이언트 프로그램에서 바인딩을 만들려면 이 정보를 가져오거나 제공해야 합니다.

클라이언트 프로그램에서 자동 바인딩 핸들을 사용하는 경우 바인딩을 만들거나 관리하는 특별한 소스 코드를 작성할 필요가 없습니다. 클라이언트 스텁은 바인딩을 설정하고 유지 관리하는 데 필요한 RPC 함수를 호출합니다. 클라이언트가 ACF(애플리케이션 구성 파일)에서 자동 바인딩 핸들을 사용하도록 지정하고 그에 따라 인터페이스를 디자인하기만 하면 됩니다. 자세한 내용은 자동 바인딩 핸들을 참조하세요.

예를 들어 원격 타임스탬핑 함수를 호출하는 클라이언트 프로그램을 개발했다고 가정해 보겠습니다. 여기서 스텁은 모든 작업을 수행하고 클라이언트는 원격 프로시저에 대한 함수 프로토타입을 얻기 위해 생성된 헤더 파일 Auto.h만 포함하면 됩니다. 원격 프로시저에 대한 클라이언트 애플리케이션 호출은 다음 예제와 같이 로컬 프로시저에 대한 호출인 것처럼 표시됩니다.

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

앞의 예제에서 볼 수 있듯이 클라이언트 애플리케이션은 RPC 런타임 라이브러리 함수를 명시적으로 호출할 필요가 없습니다. 클라이언트 스텁이 관리합니다.

애플리케이션에서 암시적 또는 명시적 바인딩 핸들을 사용하는 경우 클라이언트는 바인딩 정보를 가져오고 RPC 함수를 호출하여 핸들을 만들어야 합니다. 클라이언트가 바인딩 정보를 가져오는 위치는 애플리케이션의 요구 사항에 따라 달라집니다. 클라이언트 애플리케이션을 설치하는 설치 프로그램은 바인딩 정보를 만드는 환경 변수에 저장할 수 있습니다. 애플리케이션별 구성 파일에 바인딩 정보를 저장할 수도 있습니다. 환경 변수 또는 구성 파일의 바인딩 정보는 일반적으로 문자열로 저장되므로 클라이언트 애플리케이션은 문자열을 바인딩으로 변환해야 합니다. Windows XP/2000 환경에서는 Active Directory에서 바인딩 정보를 검색할 수 있습니다. 자세한 내용은 문자열 바인딩 사용을 참조하세요.

대부분의 네트워크에는 이름 서비스가 있습니다. 서버 프로그램은 이름 서비스 데이터베이스에 자신을 보급할 수 있습니다. 클라이언트가 실행을 시작하면 이름 서비스 데이터베이스에서 바인딩 정보를 가져올 수 있습니다. 자세한 내용은 이름 서비스 데이터베이스에서 가져오기를 참조하세요.

암시적 및 명시적 핸들을 사용하여 바인딩하는 데 필요한 단계는 다음 항목에서 설명합니다.

이러한 항목에 대한 간략한 개요는 클라이언트와 서버 연결을 참조하세요.