在Java中实现自定义协议逻辑?

时间:2011-08-17 11:04:14

标签: java protocols state-machine

在实施客户端/服务器解决方案时,您始终需要回答的一个问题是协议。

在简单的情况下,数据包可能总是相同类型,因此协议甚至可能根本没有逻辑:客户端连接到服务器,服务器只是说了一些事实,客户端断开连接就是这样。

在更复杂的情况下,某些数据包只能在某些特定情况下发送。例如,想象一下需要授权的抽象服务器:客户端必须在发送或获取任何有用数据之前进行授权。在这种情况下,会话的概念出现。

Session是一个描述客户端/服务器对话框状态的概念:客户端和服务器期望来自彼此的东西,而且还有他们都不期望的东西。

然后,更深入,假装协议非常复杂,并且它的实现应该可以轻松扩展。我相信,理论上正确的解决方案是使用有限状态机。是否有任何Java框架/库允许轻松实现此状态机?或者,可能还有更多特定于协议的解决方案?

我期待的是一个框架,允许我定义它们之间的状态和转换。

更新:问题不是关于最简单的客户端/服务器解决方案实现,问题是关于实现自定义协议。所以,请不要建议使用网络服务。

1 个答案:

答案 0 :(得分:2)

我记得几年前使用Unimod FSM用于有限状态机,虽然为了认真工作,我总是喜欢直接实现有限状态机。