Python中文
首页
教程
问答
标签
搜索
登录
注册
如何选择合适的Python解析器生成器来解析C结构定义?
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我正在做一个包含两个服务器的项目,一个是用python编写的,另一个是用C编写的。为了最大限度地提高服务器的容量,我们定义了一个二进制专有协议,通过这个协议,这两个服务器可以相互通信。在</p> <p>协议在C头文件中以C<strong>struct</strong>的形式定义。通常,我会使用VIM做一些替换来将这个文件转换成Python代码。但这意味着每次修改协议时我都要手动执行。在</p> <p>所以,我相信一个能够解析C头文件的解析器会是一个更好的选择。但是,至少有<a href="http://nedbatchelder.com/text/python-parsers.html" rel="nofollow">a dozen of Python parser generator</a>。所以我不知道哪一个更适合我的特定任务。在</p> <p>有什么建议吗?谢谢。在</p> <hr/> <p>编辑:</p> <p>当然,我要求任何人给我写代码。。。。在</p> <p>代码已经完成。我将头文件转换成Python代码,其格式是construct,一个可以解析二进制数据的Python库可以识别。在</p> <p>我也不是在寻找一些<strong>已经存在的C解析器</strong>。我问这个问题是因为我正在读的一本关于解析器生成器的书启发了我学习如何使用真正的解析器生成器。在</p> <hr/> <p>再次编辑:</p> <p>在设计系统时,我建议使用googleprotocol Buffer、zerocice或其他任何多语言网络编程中间件来消除实现协议的任务。在</p> <p>然而,并不是每个程序员都能阅读英文文档并愿意尝试新事物,尤其是当他们有丰富的经验用<strong>旧的和简单的</strong>但有点笨拙的方式来做的时候。在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>如果我这样做,我会使用IDL作为结构定义语言。做C结构的主要问题是C有指针,特别是字符串的char*。使用IDL限制了数据类型,并强加了一些语义。在</p> <p>然后你可以做任何你想做的事。大多数解析器生成器都将IDL作为示例语法。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
无法使用Django/mongoengine连接到MongoDB(身份验证失败)
5 回答
无法使用Django\u mssql\u后端迁移到外部hos
10 回答
无法使用Django&Python3.4连接到MySql
2 回答
无法使用Django+nginx上载媒体文件
8 回答
无法使用Django1.6导入名称模式
9 回答
无法使用Django1.7和mongodb登录管理站点
1 回答
无法使用Djangoadmin创建项目,进程使用了错误的路径,因为我事先安装了错误的Python
6 回答
无法使用Djangockedi验证CBV中的字段
4 回答
无法使用Djangocketditor上载图像(错误400)
3 回答
无法使用Djangocron进行函数调用
1 回答
无法使用Djangofiler djang上载文件
5 回答
无法使用Djangokronos
7 回答
无法使用Djangomssql provid
1 回答
无法使用Djangomssql连接到带有Django 1.11的MS SQL Server 2016
4 回答
无法使用Djangomssq迁移Django数据库
3 回答
无法使用Djangonox创建用户
9 回答
无法使用Djangopyodb从Django查询SQL Server
3 回答
无法使用Djangopython3ldap连接到ldap
8 回答
无法使用Djangoredis连接到redis
6 回答
无法使用Django中的FK创建新表
8 回答