java - 是否可以使用多个 java ObjectOutputStream 对象写入单个 java ObjectInputStream 对象?

标签 java sockets stream objectinputstream objectoutputstream

我有一个标准的客户端/服务器设置。

我想要构建的程序很像一个邮件办公室(这是我的服务器)。多个人(具有 ObjectOutputStream 的客户端)将带有附加地址的办公室(具有单个 ObjectInputStream 的服务器)邮件交给办公室,然后办公室将邮件发送到它应该去的地方。如果可能的话,我希望在服务器中有一个 ObjectInputStream 阻塞,等待“邮件”从 任何 ObjectOutputStream 传入,然后将“邮件”发送到它应该去。这样我就可以拥有一个完全致力于接收和发送数据的线程。

我将为每个人的客户端及其 ObjectOutputStream 提供一个线程,但不希望服务器中也需要一个匹配的线程来与每个人进行通信。我对这个想法很感兴趣,因为我发现构建大量线程来单独处理连接是多余的,而在我的情况下,单个线程可能只发送一次数据。

这可行吗?或者只是愚蠢?

最佳答案

使用Java消息服务的JMS队列,是本例的设计模式。 http://en.wikipedia.org/wiki/Java_Message_Service

关于java - 是否可以使用多个 java ObjectOutputStream 对象写入单个 java ObjectInputStream 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16142506/

相关文章:

java - 如何在 Java 中将这个 "Tue Nov 13 14:35:04 +0000 2012"String 格式转换为日期?

java - 从 java 应用程序调用的 shell 脚本的位置

C - 同时接收和处理来自 unix 套接字的数据

java - JAVA中两个列表的交集

python - 如何在 Windows 10 上使用 Python(无需下载)从 Youtube URL 流式传输音频?

c# - 是否可以检测到 Stream 是否已被客户端关闭?

java - 调用 forward() 时出现 IllegalStateException

java - 将 Java 泛型参数类型限制为最终类的列表

ios - 使用 socket.io v1.3.x 将单个用户的请求发送到一组预定义用户

c - htonl/ntohl 在第二个命令上的值不正确?