BEP9(ut_metadata)数据消息有一个total_size
字段,我很难察看它的含义。解析BEP9(ut_metadata)数据消息
消息的格式如下:
<4-byte length prefix><20><1-byte extended msg id><bencode part><piece data>
我感到困惑的两件事情:
- 是否长度前缀包括
<piece data>
一部分? total_size
字段在bencode_part
中指定?
在我看来,我们并不需要total_size
,除非我误解了某些东西。
这是目前我如何对它进行分析:
- 长度前缀包括
<piece data>
,所以我知道这个消息是完全有多大。我正在阅读那么多字节。 - 解析
<bencode_part>
后,我只是消耗其余的字节,并考虑这个数据。
任何人都可以帮助我理解这种格式吗?
谢谢。
我认为你所描述的消息格式缺少嵌套在标准bittorrent头中的扩展头。 – the8472 2014-11-25 10:34:47
你是对的,刚刚编辑帖子。 – sinan 2014-11-25 12:24:11