DirectPlay DPNSVR アプリケーションの使い方
Microsoft Windows では、複数プロセス間で単独の IP ポートまたは IPX ポートを共有することができない。通信ホストとして機能するアプリケーションでは、それぞれ異なるポートを使用しなければならない。この制約により、特に実行中のゲームを列挙するといった作業を実行するときに、以下のようないくつかの問題が発生する。
- ポートの競合を避ける。ほかのアプリケーションと競合しないポートを選択する必要がある。
- 複数の通信ホストを単独システム上で管理する。ホストは、インスタンスごとに異なったポートを使用しなければならない。一方、クライアント アプリケーションは、特定のホストが使用しているポートを判断しなければならない。
- 既に使用中のポートを避ける。望ましいポートが使用中の場合は、別のポートを使用できなければならない。
これらの問題に、DPNSVR アプリケーションは、列挙要求の転送サービスとして機能することによって対処する。アプリケーションは、ホストを開始するとき、動作中のポートを DPNSVR に知らせる。DPNSVR は、既知のポートで待機し、システム上のすべての Microsoft® DirectPlay® ホストに、すべての列挙要求を転送する。列挙要求への応答には、ホストが接続された実際のポートが含まれる。DPNSVR により、開発者は以下の利点が得られる。
- 特定のシステムで実行されているゲームをすべて列挙する汎用列挙ルーチンを作成できる。
- DirectPlay を使ってホストのポートを選択できる。クライアント アプリケーションが、DPNSVR のサービスを使って既知のポートで実行中のゲームを列挙すると、ホストが接続された実際のポートを含む応答が得られる。
- アプリケーションが要求したポートを取得できない場合を、考慮する必要がない。
- システム上にあるほかのアプリケーションとの競合について、心配する必要がない。
多くのアプリケーションでは DPNSVR のサービスを使用するが、DPNSVR を無効にしなければならない場合もある。その例を 2 つ示す。
- 使用すべきポートを知っているが、コンピュータ上でそのアプリケーションのインスタンスが 1 つしか実行されない場合。
- プレーヤーがセッションを列挙する能力を制限したい場合。DPNSVR を無効にすれば、ホストが接続されたポートを知っているプレーヤーだけが、ホストを列挙できる。
詳細については、「DPNSVR の使い方」を参照すること。