Managing Torrents
Version 7 (Alan McGovern, 07/30/2009 12:44 AM) → Version 8/18 (Alan McGovern, 07/30/2009 12:52 AM)
h1. Downloading Torrents
h2. Simple Client
<pre><code class="java">
class MainClass
{
ClientEngine engine;
string savePath;
// savePath is the directory where downloads will be stored
public MainClass(string savePath)
{
// Create a basic ClientEngine without changing any settings
this.engine engine = new ClientEngine(new EngineSettings());
this.savePath = savePath;
}
public void DownloadTorrent(string path)
{
// Open the .torrent file
EngineSettings(downloadsPath, port));
Torrent torrent = Torrent.Load(path);
// Create the manager which will download the torrent to savePath
// using the default settings.
Torrent.Load("test.torrent");
TorrentManager manager = new TorrentManager(torrent, savePath, new TorrentSettings());
// Register the manager with the engine
downloadsPath, torrentDefaults);
engine.Register(manager);
// Begin the download
manager.Start();
}
}
</code></pre> manager.Start ();
</code>
</pre>
h2. Advanced Client
<pre><code class="java">
ClientEngine engine = new ClientEngine(new EngineSettings(downloadsPath, port));
//DHT
DhtListener dhtListner = new UdpListener (new IPEndPoint (IPAddress.Any, port));
DhtEngine dht = new DhtEngine (dhtListner);
engine.RegisterDht(dht);
dhtListner.Start();
//byte array of dht nodes can be null if you have never connect to DHT before today!
engine.DhtEngine.Start(nodes);
torrent = Torrent.Load("test.torrent");
TorrentManager manager = new TorrentManager(torrent, downloadsPath, torrentDefaults);
//FastResume code need a BencodedDictionnary
//If you jsut start the torrent, you have no fast resume
// but if you have download a part of the torrent you can save fast resume data
//(manager.SaveFastResume()) and restore it later to do a quicker load
manager.LoadFastResume(new FastResume (BEncDictFastResume));
engine.Register(manager);
manager.Start ();
</code>
</pre>