当前位置: 首页 > 工具软件 > FrostWire > 使用案例 >

frostwire设置libtorrent实现顺序下载边下边播

佴阳辉
2023-12-01
首先跟踪代码运行;
main函数调用GULloader函数加载程序的主界面;
为了看下载部分的实现;首先从程序菜单栏添加种子开始跟踪;
com.limegroup.gnutella.gui.actions FileMenuActions 中跟踪添加种子的运行流程
258行 openMagnetOrTorrent函数实现其中选中种子选项
添加种子后;跳转到GUIMediator中的openTorrentFile实现中;
然后跳到BTDownloadMediator中的openTorrentFile中;
  PartialFilesDialog dlg = new PartialFilesDialog(GUIMediator.getAppFrame(), torrentFile);
是选择种子文件列表中待下载的文件选择窗口;当点击OK时,选定待下载文件;
则由BTDownloadMediator中的openTorrentFile中  调用BTEngine.getInstance().download(torrentFile, saveDir, filesSelection);实现顺序下载;
调用BTEngine过程中的跟踪过程如下:
BTEngine中的download函数调用Downloader中的download函数;
当TorrentHandle为空时;会执行 s.asyncAddTorrent(ti, saveDir, priorities, resumeFile);异步添加种子;
事实上通过打印log信息;走到这一步时th确实为空;=所以跟踪到添加种子的程序中;
由于程序采用的是异步进程通信机制;当添加种子完成后;会发出一个alert
通知种子田家完成再执行相应的操作;在BTEngine的 InnerListener中就实现了这种机制。
所以跳到fireDownloadAdded中添加设置顺序下载的属性。
 类似资料: