java - 管理 Java 客户端-服务器应用程序中的响应消息

标签 java multithreading design-patterns client-server message-queue

我正在开发 Java 客户端-服务器应用程序。

客户端发送消息序列(消息可以是不同类型,我有 header ),并监听回复。我有 2 根线程,一根用于传输,一根用于收据。 因此,我需要处理回复,以防出现错误或回复未到达,例如我可以尝试再次发送消息。

我的问题是..有什么java模式可以帮助我吗?

我想像单个事务一样处理发送和相对回复,但请注意,我不需要同步通信。我在 TX 线程中按顺序发送所有消息,并等待 RX 线程上的回复。

我想过中介模式,但我不知道这是否是正确的方法。

谢谢

最佳答案

如果问题纯粹是关于传输协议(protocol),我会看看 NAK。 http://en.wikipedia.org/wiki/NAK_(protocol_message)

我已经实现了一个我编写的名为 JCast 的协议(protocol),该协议(protocol)通过多播发送文件。文件被分解成带有编号的小片段。然后,接收客户端会使用它未收到的任何丢失片段进行响应(这些是 NAK)。然后,服务器将仅重新发送 NAK 的片段。

编辑:NAK 相对于 ACK 的好处是服务器可以发送所需的所有数据包,而无需等待 ACK。由于现在的网络已经有了很大的改进,大多数数据包都会到达。少数未到达的人将被重新发送。

关于java - 管理 Java 客户端-服务器应用程序中的响应消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19691059/

相关文章:

java - 在 HashMap 中搜索特定模式

java - 如何用实际导致异常的消息替换异常消息?

c# - 异步/等待与 Task.Run 在 C# 中

ios - GCD (iOS) 中的分派(dispatch)障碍队列

Java - 需要 MySQL 并发解决方案

c++ - 抽象工厂模式客户端代码

java - 如何在 Amazon Alexa SDK 中返回 Dialog.Delegate?

c++ - 如何在不重复代码的情况下统一实现双向转换?

C++ 设计模式库?

java - 捕获嵌套到另一个异常中的异常