Microsoft DirectX 8.0 (Visual Basic)

クライアント/サーバー セッションへの接続

すべてのクライアントは、ホストに接続して明示的にセッションに加わる必要がある。このことは、ロビーを通じて準備されたセッションでも同じである。接続により、クライアントがセッションのメンバになり、クライアントとの通信に必要な情報がホストに提供される。ホストでは、接続要求を受け付けることも拒否することもできる。

サーバー アプリケーション

クライアントがセッションへの参加を試みると、Microsoft® DirectPlay® からサーバーの DirectPlay8Event.IndicateConnect メソッドが呼び出される。プレーヤーの参加を許可する場合は、復帰前にメソッドの fRejectMsg パラメータを FALSE に設定する。要求を拒否する場合は、fRejectMsg を TRUE に設定する。どちらの場合も、プレーヤーの DirectPlay8Event.ConnectComplete メソッドが呼び出されて応答が渡される。ホストが接続を受け付けた場合は、DPNMSG_CONNECT_COMPLETE 型の hResultCode メンバが 0 に設定される。要求が拒否された場合、または何らかの理由で要求が失敗した場合には、hResultCode にエラー コードが設定される。

プレーヤーがセッションへの接続に成功すると、DirectPlay が、新しいプレーヤーの ID (DPNID) を指定して、サーバーと全クライアントの DirectPlay8Event.CreatePlayer メソッドを呼び出す。

クライアント アプリケーション

セッションに接続するには、セッション ホストのアドレスが必要になる。アプリケーションがロビー クライアントから接続されている場合は、DirectPlay8LobbiedApplication.GetConnectionSettings を呼び出せば、ホストのアドレスを取得できる。

セッション ホストのアドレスがわからない場合、IP または IPX サービス プロバイダを使用しているなら、DirectPlay8Client.EnumHosts を呼び出して利用可能なホストを列挙すれば、ある要素を全要素にコピーするセッションを調べることができる。ホストのアドレスは、利用可能なホストを列挙して取得することもできる。列挙から返される情報には、各ホストのアドレス、ホストとの通信に使用するデバイス、および関連付けられたセッションを記述する DPN_APPLICATION_DESC 型が含まれる。

セッションへの参加を要求するには、DirectPlay8Client.SetClientInfo を呼び出してプレーヤー名を設定してから、選択されたホストのアドレスを指定して DirectPlay8Client.Connect を呼び出すことによりセッションに接続する。

Microsoft® DirectPlay® から、ホストの応答を指定して DirectPlay8Event.ConnectComplete メソッドが呼び出される。ホストが接続を受け付けた場合は、DPNMSG_CONNECT_COMPLETE 型の hResultCode メンバが 0 に設定される。要求が拒否された場合、または何らかの理由で要求が失敗した場合には、hResultCode にエラー コードが設定される。