繁体   English   中英

C ++中的Bencode解析器

[英]Bencode parser in C++

用C ++编写Bencode分析器的最佳方法是什么。 尽管我对外部库的建议持开放态度,这可能会使任务变得更容易,但我认为如果我编写自己的解析器,我将在C ++中学习一些有价值的课程。 请记住,我仍然愿意接受这个建议:)

提前致谢

它相对简单,例如,可以在http://en.m.wikipedia.org/wiki/Bencode#section_1上阅读其工作原理。

另外,Google例如找到了以下C ++库: https : //github.com/kriben/bencode

您还可以从http://effbot.org/zone/bencode.htm (一个简单的Python实现)中获得启发。

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

该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;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM