1

我目前正在使用 Erlang 开发 BitTorrent 客户端。目前我正在尝试请求块,然后从下载的块中构建和验证一块。只要它不是最后一块(与其他块的大小不同),一切都会起作用。似乎最后一块已下载,但我似乎无法将它的哈希与从 torrent 文件中检索到的哈希相匹配。我想我并不是真的在这里寻求解决方案,而是在谈到最后一块的散列时,如果有什么特别要记住的东西。在那儿?

4

1 回答 1

1

不,那里没有。最后一部分和其他部分一样是 SHA1 散列的,尽管它更小。

我的猜测是您在正确处理最后一个块和/或块方面存在错误。如果查看代码失败,一种方法可能是测试已知的种子,然后将收到的片段与您应该实际收到的片段进行比较。当你得到它并与文件进行比较时,首先打印出最后一个块。

于 2010-12-01T14:50:19.950 回答