在实施客户端/服务器解决方案时,您始终需要回答的一个问题是协议。
在简单的情况下,数据包可能总是相同类型,因此协议甚至可能根本没有逻辑:客户端连接到服务器,服务器只是说了一些事实,客户端断开连接就是这样。
在更复杂的情况下,某些数据包只能在某些特定情况下发送。例如,想象一下需要授权的抽象服务器:客户端必须在发送或获取任何有用数据之前进行授权。在这种情况下,会话的概念出现。
Session是一个描述客户端/服务器对话框状态的概念:客户端和服务器期望来自彼此的东西,而且还有他们都不期望的东西。
然后,更深入,假装协议非常复杂,并且它的实现应该可以轻松扩展。我相信,理论上正确的解决方案是使用有限状态机。是否有任何Java框架/库允许轻松实现此状态机?或者,可能还有更多特定于协议的解决方案?
我期待的是一个框架,允许我定义它们之间的状态和转换。
更新:问题不是关于最简单的客户端/服务器解决方案实现,问题是关于实现自定义协议。所以,请不要建议使用网络服务。