我正在开发一个将多媒体文件传输到种子上的应用程序。
后端需要在它们到达时向前端提供新的碎片。
我需要一种机制来在新件到达并经过验证时得到通知。据我所知,我可以使用block_finished_alert
来做到这一点。我会跟踪哪些块已经到达给定的块,并在所有块到达时读取该块。
这个解决方案似乎有点迂回,我想知道是否有更好的方法。
答案 0 :(得分:2)
您要求的内容称为piece_finished_alert
。每次新作品完成下载并通过散列检查时都会发布。要从磁盘读取一个部分,您可以使用torrent_handle::read_piece()
(并在read_piece_alert
中获得结果)。
但是,如果您想要流媒体,您可能希望使用torrent_handle::set_piece_deadline()
并将标志设置为发送read_piece_alerts
。这将调用libtorrent的内置流功能。