MMORPGat GAMEDEVMMORPG - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト50:名前は開発中のものです。 05/11/21 11:50:42 08eNFaZz 漏れの作り方 1. とりあえず1対1でもいいからエコーサーバーを作る。 2. エコーサーバーをテストに使い、クライアント側の通信部分を作る。 3. 2で作った通信部分をテストに使い、サーバー側の通信部分を作る。 51:名前は開発中のものです。 06/01/22 19:53:14 QU3Ld80h 誰も見てないだろうから初歩的な質問してみる。 複数クライアントのチャットサーバにおいて サーバがあるクライアントとの接続を確立したあとどうすべきか悩んでいます。 1、forkしてクライアントとの通信は子プロセスに任せる 親プロセスはそのソケットディスクリプタをcloseして新たにacceptする 送受信データの同期はプロセス間通信で親プロセスがなんとかする? >>19のscを受け取った時点でfork、親プロセスはscをcloseしたあとにbindのところに戻る 2、ひとつのプロセスで通信と同期を全てまかなう 最初から接続上限数のソケットディスクリプタをつくっておいて サーバの中で送受信を接続上限数分ループさせる >>19のscを配列にして>>20のdo-whileをforにしてsc[i]を各々受信する感じ 1を使うとひとつのクライアントとの接続に不具合が発生しても サーバがこけることはなさそうというのがメリットで (他人の発言のような)送信すべきデータの取得がややこしそうになるというのがデメリット。 2の場合、親亀こけたら皆こけたの要領でひとつのクライアントとの通信不具合が サーバ全体におよびそうというのがデメリットで ループのおかげで受信の順番が決まってるのでそのときに送信をそれぞれ探ればいいから 送信データの取得はチャットだけを考えるなら簡単そうというのがメリット。 という風に考えています。 どっちをMMORPGサーバまで発展させると考えるなら採用すべきでしょうか? 間違った考え方をしている点や気づいていないメリットやデメリット、他の手段 などありましたらご指摘のほうお願いします。 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch