[過去ログ]
MMORPG (102レス)
MMORPG http://mevius.5ch.net/test/read.cgi/gamedev/1127547668/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
51: 名前は開発中のものです。 [sage] 2006/01/22(日) 19:53:14 ID:QU3Ld80h 誰も見てないだろうから初歩的な質問してみる。 複数クライアントのチャットサーバにおいて サーバがあるクライアントとの接続を確立したあとどうすべきか悩んでいます。 1、forkしてクライアントとの通信は子プロセスに任せる 親プロセスはそのソケットディスクリプタをcloseして新たにacceptする 送受信データの同期はプロセス間通信で親プロセスがなんとかする? >>19のscを受け取った時点でfork、親プロセスはscをcloseしたあとにbindのところに戻る 2、ひとつのプロセスで通信と同期を全てまかなう 最初から接続上限数のソケットディスクリプタをつくっておいて サーバの中で送受信を接続上限数分ループさせる >>19のscを配列にして>>20のdo-whileをforにしてsc[i]を各々受信する感じ 1を使うとひとつのクライアントとの接続に不具合が発生しても サーバがこけることはなさそうというのがメリットで (他人の発言のような)送信すべきデータの取得がややこしそうになるというのがデメリット。 2の場合、親亀こけたら皆こけたの要領でひとつのクライアントとの通信不具合が サーバ全体におよびそうというのがデメリットで ループのおかげで受信の順番が決まってるのでそのときに送信をそれぞれ探ればいいから 送信データの取得はチャットだけを考えるなら簡単そうというのがメリット。 という風に考えています。 どっちをMMORPGサーバまで発展させると考えるなら採用すべきでしょうか? 間違った考え方をしている点や気づいていないメリットやデメリット、他の手段 などありましたらご指摘のほうお願いします。 http://mevius.5ch.net/test/read.cgi/gamedev/1127547668/51
52: 名前は開発中のものです。 [sage] 2006/01/23(月) 12:16:06 ID:78YZ2Dnq >>51 つ thread Linuxでやるなら最終的には1でやるしかないと思う。 FreeBSDは試したこと無いから知らん。SolarisならThreadで行ける。 http://mevius.5ch.net/test/read.cgi/gamedev/1127547668/52
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.009s