少数のクライアント接続のみをホストするように設計されたソケットサーバーを作成しています。 )接続をフルでソケットサーバーのハンマーを防ぐ方法は?
- (サーバはその後、近く、フルであることをユーザーに通知し、()の着信ソケット接続を受け入れる:ユーザーが接続を試みると
、私のサーバーは、2つのうちのいずれか、AFAICTを行うことができます;
- 接続リストがいっぱいの場合は、接続の試行を無視してください。
私は第2の選択肢が本当に好きではありませんが、最初の人はゲームをしているプレイヤーがサーバーを叩いてみるかもしれないというトラブルを招いているようです。私が単純にその試みを無視すれば、この点で何ら問題はありません。
どのようなアプローチをとるべきですか?
いいえ...これは、実用性がほとんどありません。後でやり直すように指示した後にクライアントを取り出す方が簡単です。実際にあなたが主張していることは、スロットが利用可能になるまで何も応答を得ないので、私の選択肢2とほとんど同じです。 「通り沿いの迷惑な人を無視するのか、丁重に私に残すように告げるのですか?」問題は、承認がそれ以上の問題をもたらす可能性があるということです。 –
着信接続プールを使用することは、このような問題の一般的なアプローチです。 – Shai
"後で試してもらうように指示してからクライアントを取り出す"方が簡単かもしれませんが、それは大きな障害です。ゲームに接続するとき、私は待ち行列に入っていることを知りたいし、後でもう一度試すように言われるのではなく、最終的に接続が行われることもわかります。後で?1分?10分?1時間?後で私が接続できるという保証がありますか?何も何度も何度も試してみる必要がありますか?他のゲーム)。 –