好吧,我正在用java开发一个单服务器多客户端程序。我的问题是我可以为所有客户端使用单一流,还是我必须为每个客户端创建一个单独的流?
请帮忙 谢谢
答案 0 :(得分:2)
通常,每个客户端都需要一个流。在一些情况下,您可以使用UDP和多播,但对于聊天服务器来说这听起来不是一个好主意。
通常很容易为每个客户端获取流而无需额外工作,因为无论如何每个客户端都将连接到服务器,并且可以通过该连接轻松设置流。
答案 1 :(得分:1)
是的,你可以,但我认为这会更难。
如果您使用的是 java.net.ServerSocket ,则每位客户都可以通过以下方式接受:
Socket client = server.accept();
将拥有它自己的流,所以你不必做任何其他事情。
是否真的需要为所有客户提供单个流,或者只是您认为它会有所帮助。
对于后者,它可能会导致比解决问题更多的问题。
答案 2 :(得分:1)
你能做到吗? 是的,正如Jon Skeet所说,你可以使用多播。
你应该这样做吗? 这取决于您使用流的目的。
对于大多数客户端服务器应用程序,每个客户端都需要一个流来维护独立的通信。当然,有些应用使用多播是正确的方法,例如实时视频流。在这种情况下,您不希望在将相同数据流式传输到多个客户端时压倒您的网络。当然,即使在这种情况下,每个客户端和服务器之间通常也会有一个单一的控制通道。