实验方案设计和实验工具 发展?
是否有任何开源的高级工具可以使用 GUI 促进和简化实验网络协议 (TCP/UDP) 的开发?
基本上,类似于动态状态机编辑器,它允许您定义“数据包”、“消息”、“状态”、“验证器”、“处理程序”等。
最好,这样的工具足够全面,足以处理所有相关的协议方面(即客户端和服务器),以便高级协议描述可以序列化为 XML/RDF 文件,在该文件中它可以用于动态创建应用程序代码来实现协议(即在 Python 中)。
Are there any open source, high level tools that would facilitate and simplify development of experimental network protocols (TCP/UDP) using a GUI?
Basically, something like a dynamic state machine editor that would allow you to define "packets", "messages", "states", "validators", "handlers" etc.
Preferably, such a tool would be comprehensive enough to deal with all relevant aspect of the protocol (i.e. client & server), so that the high level protocol description could be serialized out to an XML/RDF file where it could be used to dynamically create application code to implement the protocol (i.e. in Python).
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
放弃 GUI,改用文本编辑器,进入协议规范语言的世界。 这些工具中的大多数都采用某些协议的描述,尝试证明它没有被破坏,并生成实现和测试。 这里有一些可以帮助您入门的内容,但还有更多内容:
Give up the GUI for a text editor and enter the world of protocol specification languages. Most of these tools take a description of some protocol, try to prove it's not broken, and generate an implementation and tests. Here's a few to get you started, but there's many more:
无论如何,如果你的目标是最终的 python 目标,谁不从一开始就推出自己的测试装备(用 python 编写)呢?
用代码构建状态机并不难,而且它们比 GUI 中的图片更容易明确地阅读和验证,尤其是当它们变得复杂时。
在我看来,使用嵌入式 DSL 比基于 GUI 的设计器做得更好。
编辑:如果,正如您在评论中所说,您只是将 python 作为示例,我建议您采用 timday 的答案。 如果您实际上并不担心嵌入 python,请按照他的建议使用预先存在的 DSL。
If you are going to aim for an eventually python target anyway, who not roll your own test rig (in python) from the start?
State machines aren't that hard to build in code, and their a heck of a lot easier to read unambiguously and verify than pictures in a GUI, especially when they get complex.
It sounds to me you'd do better with an embedded DSL than a GUI based designer.
Edit: If, as you said in the comments, you just threw python out as an example, I'd suggest you go with timday's answer. If you're not actually worried about embedding in python, go with a pre-existing DSL as he suggests.