代码之家  ›  专栏  ›  技术社区  ›  newbielife

bittorrent如何组装缺失的部分?

  •  0
  • newbielife  · 技术社区  · 7 年前

    我使用BitTorrent,有时会遇到没有种子的文件(丢失的部分)。
    那时,我们有时会强制文件传输结束,并尝试打开未完成的文件(例如,图像文件)。
    如果幸运的话,即使某些部分丢失,也可以看到下载的图像。

    我想人工复制这种情况,下面是我如何尝试的:
    1) 通过Linux split命令将大约1 MB的bmp图像文件拆分为16 KB,
    2) 然后只将其中一个分割的文件设为0 KB。
    3) 之后,使用cat命令重新连接所有文件。

    然而,在这种情况下,与torrent的“丢失片段”情况不同,文件会完全损坏,无法读取。
    从理论上讲,这似乎没有什么特别之处,但有什么问题吗?我怎样才能实现我想要的?
    我会感谢你的帮助。

    1 回复  |  直到 7 年前
        1
  •  2
  •   rodrigo    7 年前

    使用 dd :

    dd if=/dev/zero of=image.jpg bs=1 conv=notrunc seek=X count=Y
    

    存在 X 要擦除的文件中的偏移量,以及 Y 字节数。

    关于损坏,这取决于文件的类型、丢失的文件以及用于读取文件的程序。

    例如,JPG文件使用可变位长编码,这意味着仅丢失一个位就可能从那时起损坏所有文件。但正因为如此 重新同步 重置位流的点,因此从该点开始,文件将看起来正常。但是,在编写文件时,这些重新同步点是可选的,并不是每个读者都会在发生损坏时尊重它们。。。

    无论如何,丢失部分标题将使文件完全无法读取。