[英]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.