首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >实施协议的最佳方法是什么?

实施协议的最佳方法是什么?
EN

Stack Overflow用户
提问于 2008-10-30 07:29:51
回答 4查看 1.7K关注 0票数 5

假设您正在编写一个必须实现HTTP协议的应用程序。协议相当复杂,可能会允许几个命令,这取决于它们所处的事务阶段。

以SMTP为例。如果在接收"rcpt“和"mail”之前发送了"data“命令,则SMTP服务器必须抛出错误。

我的问题是:在代码中处理此类协议的最佳方式是什么?有没有与此相关的设计模式?

编辑:这个问题与实现协议背后的理论有关。我知道在实践中使用库是最好的方法。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2008-10-30 07:32:05

状态机

在我看来,状态机是建模和处理协议的最简单方法。通过与接收到的有效命令相关的若干转换将达到一种状态。然后,每个状态将只允许命令的某个子集。

状态机在编译器构造中用于程序的词法分析。我认为协议实现的问题是这种情况的一个特例。

票数 12
EN

Stack Overflow用户

发布于 2008-10-30 07:32:44

处理此类协议的最好方法是使用库。几乎地球上使用的每种计算机语言都有预先存在的、经过良好测试的库来处理http和smtp。

票数 1
EN

Stack Overflow用户

发布于 2008-10-30 12:31:24

@fluffels@

Zed Shaw (Mongrel的作者) agrees with you;他使用Ragel

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/249493

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档