簡體   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