DirectPlay DirectPlay 의 고도의 주제 DirectPlay DPNSVR 애플리케이션의 사용법   [목차열람] [주소복사] [슬롯비우기]
DirectPlay DPNSVR 애플리케이션의 사용법
 
Microsoft DirectX 9.0

DirectPlay DPNSVR 애플리케이션의 사용법


Microsoft® Windows® 에서는, 인터넷 프로토콜 (IP) 포트 또는 IPX (Internetwork Packet Exchange) 포트 마다 허가되는 것은 1 개의 프로세스뿐이다. Windows 에서는, 복수의 프로세스가 1 개의 포트를 공유하는 것은 허가되지 않는다. 통신 호스트로서 기능하는 애플리케이션은, 각각 다른 포트를 사용해야 한다. 이 제약에 의해, 특히 실행중의 게임을 열거하는 것 같은 작업을 실시할 때, 다음과 같은 고려가 필요하게 된다.

이러한 문제에, DPNSVR 애플리케이션은, 열거 요구의 전송 서비스로서 기능하는 것에 의해 대처한다. 애플리케이션은, 호스트를 시작 할 때 사용중의 포트를 DPNSVR 에 알린다. DPNSVR 는, 기존의 포트로 대기해, 시스템 위에의 모든 Microsoft DirectPlay® 호스트에게 열거 요구를 전송 한다. 열거 요구에의 응답에는, 호스트의 접속처인 실제의 포트 번호가 포함된다.

다음 그림은 2 개의 액티브한 호스트 애플리케이션을 실행중의 컴퓨터로, DPNSVR 가 리모트 클라이언트로부터의 열거 쿼리-를 처리하는 방법을 나타내고 있다.

DPNSVR 에 의한 열거 쿼리-의 처리의 그림

DPNSVR 에 의해, 다음의 이점을 얻을 수 있다.

많은 애플리케이션에서는 DPNSVR 의 서비스를 사용하지만, DPNSVR 를 무효로 하지 않으면 안 되는 경우도 있다. 그 예를 2 개 가리킨다.

DPNSVR 의 사용법

서비스 프로바이더가 DPNSVR 를 지원 하고 있을지 어떨지를 판단하려면 ,IDirectPlay8Peer ,IDirectPlay8Client , 또는 IDirectPlay8Server 로 지원 되는 GetSPCaps 메서드를 호출한다. 서비스 프로바이더가 DPNSVR 를 지원 하고 있는 경우, 돌려받는 DPN_SP_CAPS 구조체의 dwFlags 멤버에 DPNSPCAPS_SUPPORTSDPNSRV 플래그가 설정된다. 현시점에서는, IP 서비스 프로바이더, IPX 서비스 프로바이더, 및 네트워크 시뮬레이터 서비스 프로바이더만이 DPNSVR 를 지원 한다.

  네트워크 시뮬레이터 서비스 프로바이더를 사용해 DPNSVR 세션의 호스트가 되는 경우, IP 서비스 프로바이더를 사용해 DPNSVR 세션의 호스트가 되지 못하고, 그 역도 마찬가지이다. 모든 DPNSVR 세션에는 IP 서비스 프로바이더나 네트워크 시뮬레이터 서비스 프로바이더를 사용할 필요가 있다. IPX 세션이나 DPNSVR 없음의 세션의 호스트가 되는 능력은 영향을 받지 않는다.

DPNSVR 는 디폴트로 선택되고 있으므로, 특별한 조작을 하지 않고 사용할 수 있다. 열거 요구를 호스트에게 전송 하고 싶지 않은 경우는,DPN_APPLICATION_DESC 구조체의 dwFlags 멤버에 DPNSESSION_NODPNSVR 플래그를 설정해, DPNSVR 를 명시적으로 무효로 할 필요가 있다. DPNSVR 에는, 한층 더 다음과 같은 특징이 있다.

  DPNSESSION_NODPNSVR 플래그가 설정되어 있어도, 애플리케이션이 사용중의 포트를 알고 있으면, 언제라도 호스트를 열거할 수 있다.


© 2002 Microsoft Corporation. All rights reserved.
↑TOP