Raymond Chenには、この種の質問に対する良いアドバイスがあります。OSの制限について質問する必要がある場合は、おそらく間違っていると思われます。 IPプロトコルでは、最大65535ポートしか使用できません。これらのポートの多くは予約されており、一般的な使用には使用できません。あなたのメッセージングプロトコルは、OSの制限が問題にならないように、より詳細に検討する必要があることをお勧めします。私はそのようなシステムを記述する多くの良いリソースがあると確信しています。確かにここには良いアイデアがある人々がいます。
EDIT:スケーラブルチャットサーバーの実装について考えてみましょう。
まず、クライアントが通信できるようにサーバー上の単一のポートを指定します。クライアントがチャット状態(例えば、新規ユーザメッセージ)を更新する必要があるときはいつでも次の手順を実行します
create message packet
open port to server
send packet
close port
サーバーを次のん:
connection request received
get packet
close connection
process packet
for each client that requires updating
open connection to clients
send update packet
close connection
新しいチャットセッションが開始され
、セッションを開始するクライアントは、クライアントのユーザーの詳細と応答用のIPアドレスを持つ「新しいセッション」メッセージをサーバーに送信します。サーバーは新しいチャットセッションを作成し、セッションIDで応答します。次に、クライアントは、ユーザーが入力したメッセージを含むパケットを送信し、サーバーはそれを処理し、同じセッション内の他のクライアントにメッセージを転送します。クライアントはチャットを終了すると、サーバーに「セッション終了」メッセージを送信します。サーバーはセッションからクライアントを削除し、セッションにクライアントがなくなるとセッションを破棄します。
あなたが考えることを望む希望。
を作成します:おかげで、私はあなたが提供されるリンクから関連する記事を見つけることができませんTCPIPが\
サイトではシステムのことについて多くのことを話していますが、時には上記の声明で通常答えられるシステムの制限についてのコメントがあります。 50k接続が必要な場合、50001が必要な日に何が起こるでしょうか? 1つの接続を使用し、50kのチャットを処理する必要があります。 – Skizz
メッセージごとに開閉接続が送信されますか?その規模はどれくらいうまくいくのだろうか私はいくつかの読書をしてきました。すべての通信が非同期であれば、書込み/読込み終了を介して処理できるデータがあるときにほとんどのソケットがスリープ状態になることがあります。あなたの考えは です。 –