DirectPlay DirectPlay C++ 샘플 NATResolver [목차열람] [주소복사] [슬롯비우기] |
Microsoft DirectX 9.0 |
소스 파일 : (SDK 루트) \Samples\C++\DirectPlay\NATResolver
실행 가능 파일 :(SDK 루트) \Samples\C++\DirectPlay\Bin
샘플 가 기동 하면, 문의를 기다리는 IDirectPlay8NATResolver 개체가 생성 된다. 샘플은 이용 가능한 모든 IPv4 장치로부터 수신하는 문의를 처리한다. [Require password] 체크 박스를 온으로 하면 텍스트 형식의 패스워드에 대해 문의를 선별한 후, Microsoft® DirectPlay® 는 해결한 주소를 돌려줄 수가 있다.
다이얼로그는, 수신하는 문의와 송신하는 응답의 수와 함께, 현재 사용되고 있는 주소의 일람을 표시한다.
DirectPlay 는 주소 해결의 대부분의 작업을 처리한다. 작업을 중단하는 것은, 유입하는 문의가 권한이 있는 클라이언트때문인지 어떤지를 조사할 때 뿐이다. IDirectPlay8NATResolver::Initialize 메서드는 클라이언트의 권한에 대한 메시지 콜백을 설정해,IDirectPlay8NATResolver::Start 메서드는 요구된 장치로 서버를 기동한다.
DirectPlay 는 DPN_MSGID_NAT_RESOLVER_QUERY 메시지를 사용해 클라이언트로부터의 문의에 대해 프로그램에 통지한다. 이 메시지는, 클라이언트의 주소와 지정된 패스워드를 저장 한다. 이 콜백으로부터 성공을 나타내는 반환값이 돌아가면 DirectPlay 은 주소 해결을 처리한다. 실패를 나타내는 반환값이 돌아가면 해결은 삭제되지만, 관련하는 DirectPlay 의 호출은 계속해 실행된다. 패스워드를 사용하면 게임에 참가하고 있지 않는 클라이언트로부터 Resolver 서버에의 액세스를 거부할 수 있다.