2011-08-17 50 views
1

实施客户端/服务器解决方案时,您总是需要回答的问题之一就是协议。在Java中实现自定义协议逻辑?

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

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

会话是一种描述客户端/服务器对话状态的概念:客户端和服务器端希望来自彼此的东西,但也有一些事情他们都不期望。

然后,更深入,假装协议是相当复杂的,它的实现应该很容易扩展。我相信,这里理论上正确的解决方案是使用有限状态机。是否有任何Java框架/库允许这个状态机容易实现?或者可能还有其他协议特定的解决方案?

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

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

+1

你有没有考虑使用网络服务或类似的东西?你不必实现自己的解决方案,你可以使用WS作为已经证明的方法。 – vmg 2011-08-17 11:13:09

回答

2

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