次の方法で共有


NATResolver

NATResolver

NATResolver サンプルは、IDirectPlay8NATResolver インターフェイスを使って、ネットワーク アドレス変換 (NAT) デバイスを介したプレーヤに対してどのようにアドレス解決を実装するかを示す。このインターフェイスは簡単なサーバーとして動作し、問い合わせを受け付け、受け取ったアドレスを呼び出し元に反映する。

パス

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

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

ユーザーズ ガイド

サンプルが起動すると、問い合わせを待つ IDirectPlay8NATResolver オブジェクトが作成される。サンプルは利用可能なすべての IPv4 デバイスから受信する問い合わせを処理する。[Require password] チェック ボックスをオンにすると、テキスト形式のパスワードについて問い合わせを選別した後、Microsoft® DirectPlay® は解決したアドレスを返すことができる。

ダイアログは、受信する問い合わせと送信する応答の数と共に、現在使われているアドレスの一覧を表示する。

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

プログラミング上の注意

DirectPlay はアドレス解決のほとんどの作業を処理する。作業を中断するのは、流入する問い合わせが権限のあるクライアントからかどうかを調べるときだけである。IDirectPlay8NATResolver::Initialize メソッドはクライアントの権限に対するメッセージ コールバックを設定し、IDirectPlay8NATResolver::Start メソッドは要求されたデバイスでサーバーを起動する。

DirectPlay は DPN_MSGID_NAT_RESOLVER_QUERY メッセージを使ってクライアントからの問い合わせについてプログラムに通知する。このメッセージは、クライアントのアドレスと指定されたパスワードを格納する。このコールバックから成功を示す戻り値が返ると、DirectPlay はアドレス解決を処理する。失敗を示す戻り値が返ると解決は取り消されるが、関連する DirectPlay の呼び出しは続けて実行される。パスワードを使うと、ゲームに参加していないクライアントから Resolver サーバーへのアクセスを拒否できる。