Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中实现自定义协议逻辑?_Java_Protocols_State Machine - Fatal编程技术网

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

在Java中实现自定义协议逻辑?,java,protocols,state-machine,Java,Protocols,State Machine,在实现客户机/服务器解决方案时,您始终需要回答的问题之一是关于协议的问题 在简单的情况下,数据包可能总是同一类型的,因此协议甚至可能根本没有逻辑:客户端连接到服务器,服务器只说一些事实,客户端断开连接,就是这样 在更复杂的情况下,某些数据包只能在某些特定情况下发送。例如,设想一个需要授权的抽象服务器:客户端在发送或获取任何有用数据之前必须经过授权。在这种情况下,会出现会话的概念 会话是一个描述客户机/服务器对话框状态的概念:客户机和服务器都期望对方提供一些东西,但也有一些东西是他们都不期望的 然

在实现客户机/服务器解决方案时,您始终需要回答的问题之一是关于协议的问题

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

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

会话是一个描述客户机/服务器对话框状态的概念:客户机和服务器都期望对方提供一些东西,但也有一些东西是他们都不期望的

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

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


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

< P>我记得几年前使用有限状态机,虽然对于严肃的工作,我总是倾向于直接实现有限状态机。

你考虑使用Web服务或类似的东西吗?您不必实现自己的解决方案,您可以使用WS作为已经证明有效的方法。好吧,让我们添加一个不允许我在此任务中使用WS的约束:-)