scrape_tracker 不使用 libtorrent 发出任何警报
Posted
技术标签:
【中文标题】scrape_tracker 不使用 libtorrent 发出任何警报【英文标题】:scrape_tracker doen't give any alert with libtorrent 【发布时间】:2016-01-09 10:16:41 【问题描述】:我在我正在构建的 C++ 应用程序中使用 libtorrent,并且下载工作完美,但我想在尝试开始下载之前询问跟踪器它已连接的种子和对等点的数量。
我尝试使用 scrape_tracker(),但从未收到警报。我认为我没有以正确的方式使用警报,但我找不到可以使用的代码。 我就是这样做的:
while (running)
sleep(1000);
std::vector<alert*> alerts;
s.pop_alerts(&alerts);
for (std::vector<alert*>::iterator i = alerts.begin(), end(alerts.end()); i != end; ++i)
scrape_failed_alert* tpf = alert_cast<scrape_failed_alert>(*i);
if (tpf)
MessageBox(0,"alert",0,0);
scrape_reply_alert* tpr = alert_cast<scrape_reply_alert>(*i);
if (tpr)
MessageBox(0,"alert",0,0);
【问题讨论】:
【参考方案1】:有一个mask 可以启用和禁用要发布的警报类别。 (某些类别可能非常冗长)。默认情况下,只发布错误以及对特定调用的响应(如保存简历数据、添加种子等)
事实证明,只有在启用alert::tracker_notification
类别的警报时才会发布抓取请求。这很可能是一个疏忽,因为抓取警报仅在响应执行抓取的活动调用时发布,所以无论警报掩码如何,都应该发布响应。
但是,如果您启用跟踪器通知警报,我想您会收到抓取响应。
s.set_alert_mask(alert::tracker_notification | alert::error_notification);
【讨论】:
你明白了!我只收到“丢失或无效的‘散列’条目”,但至少我有回复。谢谢以上是关于scrape_tracker 不使用 libtorrent 发出任何警报的主要内容,如果未能解决你的问题,请参考以下文章