0

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

请帮忙谢谢

4

3 回答 3

2

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

通常,无需额外工作即可轻松获得每个客户端的流,因为无论如何每个客户端都会连接到服务器,并且可以通过该连接轻松设置流。

于 2009-04-16T17:25:23.670 回答
1

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

如果您使用的是java.net.ServerSocket,那么每个客户端都通过以下方式接受:

Socket client = server.accept();

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

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

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

于 2009-04-16T17:29:24.847 回答
1

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

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

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

于 2009-04-16T17:38:27.257 回答