ChatPeer
ChatPeer
ChatPeer サンプルは、SimplePeer と類似した形式である。プレーヤがセッションのホストとなるか、またはセッションに接続すると、文字列の受け渡しによってプレーヤどうしがチャットできるようになる。
パス
ソース ファイル : (SDK ルート)\Samples\C++\DirectPlay\ChatPeer
実行可能ファイル :(SDK ルート)\Samples\C++\DirectPlay\Bin
ユーザーズ ガイド
プレーヤの名前を入力し、接続の種類を選択する。[Wait for Lobby Connection] またはサービス プロバイダを選択できる。[Multiplayer Games] ダイアログ ボックスを使って、参加するアクティブなゲームの検索または新しいゲームの開始ができる。ゲームに参加するとき、またはゲームを開始するときは、すぐに開始できる。他のプレーヤは、いつでもゲームに参加できる。ホストの移行がオンになっている場合、Microsoft® DirectPlay® が自動的にホスト セッションを他のプレーヤに移行するため、ホスト プレーヤはいつでもゲームを抜けられる。
注 Internetwork Packet Exchange (IPX) サービス プロバイダを選んだ場合、DirectPlay にアドレスの検索を実行させるには、[use DPNSVR] チェック ボックスをオンにする。
プログラミング上の注意
ChatPeer サンプルは、SimplePeer と非常に似た形式である。ChatPeer で異なるのは、セッションに接続したすべてのプレーヤに対して、クライアントが文字列を送信できるようにしていることである。詳細なプログラミング上の注意については、SimplePeer サンプルの「プログラミング上の注意」を参照すること。
[Send] をクリックすると、SendChatMessage 関数は次の処理を実行する。
- ダイアログ ボックスから文字列を取得する。
- アプリケーション定義の構造体である GAMEMSG_CHAT に情報を格納する。この構造体は、最初の BYTE にメッセージ タイプ識別子 (ID) を持つ。アプリケーションは、この情報から、受信したアプリケーション メッセージの種類を確認できる。ただし、ChatPeer で使うアプリケーション定義メッセージは 1 つだけである。この処理の複雑な例については、「StagedPeer」を参照すること。
- GAMEMSG_CHAT バッファを使って DPN_BUFFER_DESC 構造体に情報を格納する。
- DPN_BUFFER_DESC を使って IDirectPlay8Peer::SendTo を呼び出す。このメッセージが全員に送信されるように、DPNID_ALL_PLAYERS_GROUP フラグを渡す。