java中的流

时间:2009-04-16 17:09:53

标签: java client io stream

好吧,我正在用java开发一个单服务器多客户端程序。我的问题是我可以为所有客户端使用单一流,还是我必须为每个客户端创建一个单独的流?

请帮忙 谢谢

3 个答案:

答案 0 :(得分:2)

通常,每个客户端都需要一个流。在一些情况下,您可以使用UDP和多播,但对于聊天服务器来说这听起来不是一个好主意。

通常很容易为每个客户端获取流而无需额外工作,因为无论如何每个客户端都将连接到服务器,并且可以通过该连接轻松设置流。

答案 1 :(得分:1)

是的,你可以,但我认为这会更难。

如果您使用的是 java.net.ServerSocket ,则每位客户都可以通过以下方式接受:

Socket client = server.accept();

将拥有它自己的流,所以你不必做任何其他事情。

是否真的需要为所有客户提供单个流,或者只是您认为它会有所帮助。

对于后者,它可能会导致比解决问题更多的问题。

答案 2 :(得分:1)

你能做到吗? 是的,正如Jon Skeet所说,你可以使用多播。

你应该这样做吗? 这取决于您使用流的目的。

对于大多数客户端服务器应用程序,每个客户端都需要一个流来维护独立的通信。当然,有些应用使用多播是正确的方法,例如实时视频流。在这种情况下,您不希望在将相同数据流式传输到多个客户端时压倒您的网络。当然,即使在这种情况下,每个客户端和服务器之间通常也会有一个单一的控制通道。