DirectPlay DirectPlay C++ 샘플 NatPeer [목차열람] [주소복사] [슬롯비우기] |
Microsoft DirectX 9.0 |
소스 파일 : (SDK 루트) \Samples\C++\DirectPlay\NatPeer
실행 가능 파일 :(SDK 루트) \Samples\C++\DirectPlay\Bin
프로그램을 기동 하면, 다이알로그 박스가 표시되어 NAT 의 어드레스 변환을 유효하게 하는 옵션을 포함해 접속 정보를 지정할 수 있다. NAT 의 주소 해결을 유효하게 하면, Microsoft® DirectPlay® 는 [Server Address] 와 [Password] 를 사용해, 유니버설 플러그 앤 플레이 (UPnP)와 호환성이 없는 NAT 를 경유한 player의 외부 주소를 해결한다. 사용자가 세션 호스트를 선택하고 있지 않는 경우, 2 번째의 다이얼로그가 표시되어 거기서 사용자는 액티브한 세션을 검색해, 그 세션에 접속할 수 있다.
일단 세션에 들어가면 게임의 동작은 SimplePeer 와 유사하다.
NAT 주소 해결 옵션을 온으로 하면 DPNA_KEY_NAT_RESOLVER 키와 DPNA_KEY_NAT_RESOLVER_USER_STRING 키아래에 로컬 장치 주소의 구성 요소로서 [Server Address] 필드와 [Password] 필드가 추가된다.
DPNA_KEY_NAT_RESOLVER 구성 요소에는, 복수의 칸마 단락 서버를 지정할 수 있다. 각 서버의 속도가 동시에 테스트되어 최초의 응답이 사용된다. 응답하는 서버가 없는 경우에서도,Host,Connect, 또는 EnumHosts 의 호출은 성공하지만, 로컬의 UPnP 접속 정보만 사용한다.
이러한 해결 서버를 호스트로 하려면 리소스가 필요하기 때문에, 임의의 player가 서버를 사용하지 않게 설정할 수 있다. 그 때문에(위해)는, DPNA_KEY_NAT_RESOLVER_USER_STRING 주소 구성 요소를 사용한다. 이 값은 검증을 위해서(때문에) 해결 서버에 직접 건네받는다. 서버는 필요에 따라서 응답할지 어떨지를 선택할 수 있다. 사용자 캐릭터 라인은 네트워크를 개입시켜 clear text로 건네받는다. 따라서, 텍스트에 중요 정보가 포함되어 있을 가능성이 있는 경우, 송신하기 전에 암호화하는 것.
IDirectPlay8NATResolver 서버의 처리 및 NAT 주소 해결의 더 자세한 정보는, 소프트웨어 개발 킷 (SDK)에 준비되어 있는 NATResolver 샘플을 참조할것.