다음을 통해 공유


그래프 작업

피어 그래프를 사용하는 경우 함수를 특정 순서로 호출해야 합니다. 호출 흐름은 피어 그래프를 만들거나 여는지 여부에 따라 달라집니다. 이 항목에서는 간단한 피어 그래프 애플리케이션에서 함수 호출의 흐름을 식별합니다.

그래프 시작

애플리케이션이 Peer Graphing API에서 함수를 호출하기 전에 PeerGraphStartup 을 호출하여 애플리케이션에 대한 Peer Graphing API를 초기화한 다음 지원되는 버전을 설정해야 합니다.

피어 그래프 만들기

다음 절차에서는 피어 그래프를 만들기 위한 호출 흐름을 식별합니다.

중요

피어 하나만 PeerGraphCreate를 호출해야 합니다. 다른 모든 피어는 PeerGraphOpen을 호출해야 합니다. PeerGraph에 대한 여러 호출이 그래프를 무효화합니다.

 

피어 그래프 열기

피어 그래프를 열기 위한 함수 호출의 흐름은 PeerGraphOpen 호출의 반환 값에 따라 달라집니다. 가장 중요한 값은 항목의 다음 섹션에서 설명하는 S_OK 및 PEER_S_DATA_CREATED.

참고

PeerGraphOpen 호출이 S_OK 또는 PEER_S_DATA_CREATED 반환하지 않으면 오류를 처리합니다.

 

PeerGraphOpen이 S_OK 반환하는 경우

PeerGraphOpen에 대한 호출이 S_OK 반환하면 피어 그래프와 기존 데이터베이스가 열립니다. 다음 절차에서는 PeerGraphOpen 호출이 S_OK 반환할 때 피어 그래프를 열기 위해 수행할 수 있는 작업을 식별합니다.

  • 피어 이벤트에 등록합니다. PeerGraphRegisterEvent를 호출합니다.

    참고

    이벤트 등록에 대한 자세한 내용은 이벤트 인프라를 참조하세요.

     

  • 노드를 찾습니다. 이 프로세스는 사용자가 식별하는 메서드 또는 애플리케이션을 사용하여 피어 그래프 인프라 외부에서 수행됩니다. 피어 그래프 API는 연결할 초기 그래프 노드를 찾는 특정 메커니즘을 제공하지 않습니다. 애플리케이션은 초기 노드를 찾으려면 PNRP(피어 이름 확인 프로토콜) API와 같은 다른 메커니즘을 사용해야 합니다.

  • 노드가 발견되면 노드에 연결합니다. PeerGraphConnect를 호출한 다음 PeerGraphListen을 호출하여 피어 그래프에 대한 연결을 수신 대기합니다.

    참고

    노드를 찾을 수 없는 경우 PeerGraphConnectPeerGraphListen을 호출하지 마세요.

     

  • 실행 시간의 나머지 부분에 대해 애플리케이션 종속 함수를 수행합니다(예: 피어 이벤트 처리 및 연결 작업)는 노드가 피어 그래프에 연결되어 있는지 여부에 따라 달라집니다. 예를 들어 애플리케이션은 시간 제한을 선택하거나 그래프의 활성 노드에 대한 검색을 주기적으로 수행할 수 있습니다.

  • 피어 그래프에 대한 연결을 닫습니다. PeerGraphClose를 호출합니다.

PeerGraphOpen이 PEER_S_DATA_CREATED 반환하는 경우

PeerGraphOpenPEER_S_DATA_CREATED 반환하면 피어 그래프에 대한 기존 데이터베이스를 찾을 수 없으며 새 데이터베이스가 생성되며 처음으로 열립니다. 피어 그래프를 사용하거나 수신 대기하려면 피어를 피어 그래프에 연결하고 동기화해야 합니다.

다음 절차에서는 PeerGraphOpen 호출이 PEER_S_DATA_CREATED 반환할 때 피어 그래프를 열기 위해 수행할 수 있는 작업을 식별합니다.

  • 피어 그래프를 엽니다. PeerGraphOpen을 호출합니다.

  • 피어 이벤트에 등록합니다. PeerGraphRegisterEvent를 호출합니다.

    참고

    피어 이벤트 등록에 대한 자세한 내용은 이벤트 인프라를 참조하세요.

     

  • 노드를 찾습니다. 이 프로세스는 사용자가 식별하는 메서드 또는 애플리케이션을 사용하여 피어 그래프 인프라 외부에서 수행됩니다. 피어 그래프 API는 연결할 초기 그래프 노드를 찾는 특정 메커니즘을 제공하지 않습니다. 애플리케이션은 초기 노드를 찾으려면 PNRP(피어 이름 확인 프로토콜) API와 같은 다른 메커니즘을 사용해야 합니다.

  • 노드가 발견되면 노드에 연결합니다. PeerGraphConnect를 호출한 다음 PeerGraphListen을 호출하여 피어 그래프에 대한 연결을 수신 대기합니다.

    참고

    노드를 찾을 수 없는 경우 PeerGraphConnectPeerGraphListen을 호출하지 마세요.

     

  • 실행 시간의 나머지 부분에 대해 애플리케이션 종속 함수를 수행합니다(예: 피어 이벤트 처리 및 연결 작업)는 노드가 피어 그래프에 연결되어 있는지 여부에 따라 달라집니다. 예를 들어 애플리케이션은 시간 제한을 선택하거나 그래프의 활성 노드에 대한 검색을 주기적으로 수행할 수 있습니다.

  • 피어 그래프에 대한 연결을 닫습니다. PeerGraphClose를 호출합니다.