次の方法で共有


NatPeer

NatPeer

NATPeer サンプルを使うと、ネットワーク アドレス変換 (NAT) デバイスを経由したユーザーが、IDirectPlay8NATResolver サーバーのアドレスと省略可能なパスワードを指定できる。この情報は HostEnumHosts、および Connect を呼び出すときのアドレス解決に使われる。NAT の詳細については、「ネットワーク アドレス変換、ファイアウォール、プロキシ」を参照すること。

パス

ソース ファイル : (SDK ルート)\Samples\C++\DirectPlay\NatPeer

実行可能ファイル :(SDK ルート)\Samples\C++\DirectPlay\Bin

ユーザーズ ガイド

プログラムを起動すると、ダイアログ ボックスが表示され、NAT のアドレス変換を有効にするオプションを含め、接続情報を指定できる。NAT のアドレス解決を有効にすると、Microsoft® DirectPlay® は [Server Address] と [Password] を使い、ユニバーサル プラグ アンド プレイ (UPnP) と互換性がない NAT を経由したプレーヤの外部アドレスを解決する。ユーザーがセッション ホストを選択していない場合、2 番目のダイアログが表示され、そこでユーザーはアクティブなセッションを検索し、そのセッションに接続できる。

いったんセッションに入ると、ゲームの動作は SimplePeer に似ている。

  Internetwork Packet Exchange (IPX) サービス プロバイダを選んだ場合、DirectPlay にアドレスの検索を実行させるには、[use DPNSVR] チェック ボックスをオンにする。

プログラミング上の注意

NAT アドレス解決オプションをオンにすると、DPNA_KEY_NAT_RESOLVER キーと DPNA_KEY_NAT_RESOLVER_USER_STRING キーの下にローカル デバイス アドレスのコンポーネントとして [Server Address] フィールドと [Password] フィールドが追加される。

DPNA_KEY_NAT_RESOLVER コンポーネントには、複数のカンマ区切りサーバーを指定できる。各サーバーの速度が同時にテストされ、最初の応答が使われる。応答するサーバーがない場合でも、HostConnect、または EnumHosts の呼び出しは成功するが、ローカルの UPnP 接続情報のみ使う。

これらの解決サーバーをホストとするにはリソースが必要なため、任意のプレーヤがサーバーを使わないように設定できる。そのためには、DPNA_KEY_NAT_RESOLVER_USER_STRING アドレス コンポーネントを使う。この値は検証のために解決サーバーに直接渡される。サーバーは必要に応じて応答するかどうかを選択できる。ユーザー文字列はネットワークを介してクリア テキストで渡される。したがって、テキストに重要情報が含まれている可能性がある場合、送信する前に暗号化すること。

IDirectPlay8NATResolver サーバーの実装および NAT アドレス解決の詳細については、ソフトウェア開発キット (SDK) に用意されている NATResolver サンプルを参照すること。