02/05/07 23:30 3mKZAWWI
>>149
HSPはシングルスレッドなので、受信・処理・送信ともに人数分回す感じになっています。
概念で表すと
┌─┐
│ ↓
│入力 [TCP受信]×人数→UDP受信→[[UDP解析]×コマンド数]×パケット数
│ ↓
│処理 [[コマンド解析・実行]×コマンド数]×人数
│ ↓
│出力 [UDP送信]×人数→[TCP送信]×人数
└─┘
V0.3は受信+処理・送信ですが、V0.2だったかなぁ、受信+処理+送信だったから、
16人接続してバトル始めたらホストが落ちたのはw。
つまり、プレイヤー1のデータを受け取ったら、解析実行で他の全員に送信、プレイヤー2のデータを受け取ったら…で、1ターンで人数^2の送信を行っていたといふ(16*16だから16msで256回送信…)。
でも、落ちた直接の原因はバッファオーバーかも。
|素直にDPN_MSGID_RECEIVE以外は受け取ったスレッドで処理しちゃえばよいのかなぁ。
悩むよりトライ&エラーのほうが早い場合も。