2017-03-18 21 views
0

サーバが保持できるソケットの数はいくつですか?私が説明: 私はJavaで簡単なチャットシステムをプログラミングだ、と私はこのような、クライアントが特定のクライアントのソケットを知っているサーバー、ソケットとServerClientオブジェクトに接続毎回作成:ソケット接続番号java chat

Socket socket= socketServer.accept(); 
clients.add(new Client(socket)); 

クライアントがサーバとの接続を切断すると、オブジェクトが削除されます。私は、この瞬間にサーバーに接続されている1つのmilionクライアントを持っていればそれは問題だと思っています。これを行うには別の方法がありますか、それとも正しい方法ですか? 助けてくれてありがとう

+0

答えを検索することを忘れないでください。 [答えはここです](@stackoverflow.com/questions/12981957/java-serversocket-connection-limit) – DontPanic

+0

@DontPanic私はなぜ50が制限として設定されているのだろうか? –

+0

@Shadab Faiz私はこの質問の答えを見つけることができません。パブリックServerSocket(int port)コンストラクターが使用されている場合に限り、50に設定されていることに注意してください。たとえばパブリックServerSocket(int port、int backlog)コンストラクタを使用する場合、制限はバックログに設定されます。したがって、50は中間価値です。 – DontPanic

答えて

1

私はそれがあなたのシステム構成(RAM、CPUなど)に完全に依存すると思います。 thisによると、thisは私が関連すると判明したものです。

チャットを実装するときは、full-duplex communicationを実装する必要があります。この時間中は、サーバーメモリを使用してメッセージを一時的に保存し、他のクライアントを処理できます。