我正在开发 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/