通信対戦ゲームの初歩

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
ti-ku

通信対戦ゲームの初歩

#1

投稿記事 by ti-ku » 15年前

通信対戦の簡易ゲームを作ろうと思うのですが、"サーバー側に複数のクライアントが接続する"という処理がどうもうまくいきません。・ω・
int NetHandle=GetNewAcceptNetWork(); で1対1の接続なら容易にできるのですが、これが1対多の場合にいろいろ苦戦します。。。。

(例
 サーバー側に複数のクライアントがランダムに接続、サーバー側では接続してきたクライアントの数を表示。

まずこれだけの処理までできたらいいな、、、、と思います。どなたかアドバイスお願いします!!

Mr.Vince

Re:通信対戦ゲームの初歩

#2

投稿記事 by Mr.Vince » 15年前

GetNewAcceptNetWork() のリファレンスを読む限り、「一番新しい」接続したハンドルを返すようなので、ループ内で接続の最大数までGetNewAcceptNetWork()を行えば良いのではないでしょうか?

例:

#define MAX_NETCOUNT 4

int tempNetHandle;
int netCount = 0;
int storedNetHandle[MAX_NETCOUNT] ;


while( !ProcessMessage() )
{
tempNetHandle = GetNewAcceptNetWork() ;

//ESC押すか、最大数(ここでは4)超えたらループ終了
if( CheckHitKey( KEY_INPUT_ESCAPE ) || netCount >= MAX_NETCOUNT ) break ;

if ( tempNetHandle != -1){
//新規接続有
storedNetHandle[netCount] = tempNetHandle;
netCount++;
}
}

printf("%d", netCount);




こんな感じでしょうか。
(自分はルーター環境下の為テストが出来ませんでしたので鵜呑みにはしないでください。飽くまでも解決法の例です。また、ネットワークを開く為の関数他は省いておりますので、ご自分で付け加えてください。)

閉鎖

“C言語何でも質問掲示板” へ戻る