C++中的本码解析器

Bencode parser in C++

本文关键字:C++      更新时间:2023-10-16

C++编写Bencode解析器的最佳方法是什么?虽然我对外部库的建议持开放态度,这可能会使任务更容易,但我认为如果我编写自己的解析器,我会在C++中学到一些有价值的经验教训。请记住,我仍然愿意接受建议:)

提前致谢

它相对简单,只需阅读它如何在 http://en.m.wikipedia.org/wiki/Bencode#section_1for 示例中工作即可。

或者,谷歌找到了例如这个C++库:https://github.com/kriben/bencode。

你也可以从 http://effbot.org/zone/bencode.htm 中获得一些灵感,这是一个简单的Python实现。

除了再次重新实现轮子之外,一种可能的方法是使用 libbencode 库(我是作者)。它提供了基于模板的方法来构建编码数据。

该 API 非常有限,但可能可以满足您的需求:

// Create an associative array of Bencode values.
bencode::dict d;
d["port wine"] = bencode::make_integer(777);
d["green"] = bencode::make_string("elephant");
// Create a new Bencode output stream
bencode::ostream os(std::cout.rdbuf());
// Put the data to the stream
os << d;
相关文章:
  • 没有找到相关文章