2009-04-16 11 views
0

まあ、私は、Javaで単一のサーバーの複数クライアントプログラムを開発しています。私の問題は、私はすべてのクライアントのための単一のストリームを使用することができますか私は各クライアントのための別々のストリームを作成する必要がありますか?Javaのストリーム

は、一般的には、クライアントごとのストリームを必要とするだろうあなた

+0

具体的にしてください。ネットワークストリームについて話していますか?どちらのクライアントデータが到着するかは重要ではありませんか?(これはシングルストリームのものを打ち負かします) – Lucero

+0

この質問のよりわかりやすいタイトルを作成してください。 「Javaのストリーム」は広すぎます。次のようにします。「複数のクライアントに複数のストリームが必要ですか? –

答えて

2

に感謝助けてください。 では、のケースでは、UDPとマルチキャスティングで逃げることができますが、チャットサーバーにとっては素晴らしいアイデアのようには聞こえません。

通常、クライアントごとにサーバーに接続し、その接続を介してストリームを簡単にセットアップできるため、余分な作業をせずにクライアントごとにストリームを取得するのは簡単です。

1

はい、私はそれがもっと難しいと思っています。

あなたはjava.net.ServerSocketを使用している場合は、その後を通じて受け付け、各クライアント:

Socket client = server.accept(); 

は、あなたが他に何もする必要はありませんので、それは自身のストリームの必要があります。

すべてのクライアントに対して単一のストリームが本当に必要か、それとも役立つと思われるものだけですか。

後で解決するよりも多くの問題が発生する可能性があります。

1

できますか? はい、Jon Skeet氏によると、マルチキャストを使用できます。

すべきですか? それはストリームを使用しているものによって異なります。

ほとんどのクライアントサーバーアプリケーションでは、独立した通信を維持するためにクライアントごとにストリームが必要です。もちろん、ライブビデオストリーミングなどのマルチキャスティングを使用するアプリケーションが適しています。このような場合、同じデータを複数のクライアントにストリーミングしながらネットワークを圧倒したくはありません。もちろん、この場合でも、通常、各クライアントとサーバの間に何らかの種類の単一の制御チャネルが存在します。