【发布时间】:2011-12-09 10:02:01
【问题描述】:
我正在用 Java 创建一个客户端/服务器对,目前仅支持通过 PrintWriters 和 BufferedReaders 围绕服务器和客户端的 IO 流进行交错文本通信。
我想实现一个函数,该函数使用 Image[Input/Output]Stream 以设定的时间间隔将 BufferedImage 从服务器发送到客户端。
问题是我希望在单独的线程中发送/接收 BufferedImages,以便客户端/服务器仍然可以发送/接收文本命令。
我可以创建多个流或套接字吗?如果是这样,那是最好的方法吗?
【问题讨论】:
-
您可以创建多个套接字,只需以与创建第一个相同的方式打开其他套接字(您不能将多个套接字打开到相同的 ip/端口组合,但是请选择不同的端口) .
-
谢谢。我想我可能不得不朝那个方向走。只有1个端口就没有办法吗?我可能想实现其他应该同时运行的功能......应用程序打开这么多端口是否正常?
-
应用程序打开许多端口是很正常的,但如果你坚持使用一个,显然对最终用户更好。唯一的其他选择是在您的单个套接字上多路复用数据,如 Jarrod 所述。
-
不要通过网络使用 PrintWriter。它吞下您需要了解的异常情况。在这种情况下,您可以使用 BufferedWriter。