0

さて、私はJavaで単一サーバーのマルチクライアントプログラムを開発しています。私の問題は、すべてのクライアントに単一のストリームを使用できますか、それともクライアントごとに個別のストリームを作成する必要がありますか?

ありがとうございます

4

3 に答える 3

2

通常、クライアントごとにストリームが必要です。場合によっては、UDPとマルチキャストを回避することはできますが、チャットサーバーにとっては素晴らしいアイデアとは思えません。

通常、各クライアントはサーバーに接続し、その接続を介してストリームを簡単に設定できるため、追加の作業なしでクライアントごとにストリームを取得するのは簡単です。

于 2009-04-16T17:25:23.670 に答える
1

それできますか? はい、Jon Skeetが言ったように、マルチキャストを使用できます。

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

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

于 2009-04-16T17:38:27.257 に答える
1

はい、できますが、難しいと思います。

java.net.ServerSocketを使用している場合、各クライアントは次の方法で受け入れます。

Socket client = server.accept();

独自のストリームがあるため、他に何もする必要はありません。

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

後者の場合、解決するよりも多くの問題を引き起こす可能性があります。

于 2009-04-16T17:29:24.847 に答える