Managing Torrents
Version 6 (Alan McGovern, 07/30/2009 12:40 AM)
1 | 6 | Alan McGovern | h1. Begin a download |
---|---|---|---|
2 | 1 | ||
3 | 5 | olivier dufour | h2. Simple Client |
4 | 5 | olivier dufour | |
5 | 4 | olivier dufour | <pre><code class="java"> |
6 | 1 | ||
7 | 5 | olivier dufour | ClientEngine engine = new ClientEngine(new EngineSettings(downloadsPath, port)); |
8 | 2 | olivier dufour | |
9 | 5 | olivier dufour | Torrent torrent = Torrent.Load("test.torrent"); |
10 | 5 | olivier dufour | TorrentManager manager = new TorrentManager(torrent, downloadsPath, torrentDefaults); |
11 | 5 | olivier dufour | |
12 | 5 | olivier dufour | engine.Register(manager); |
13 | 5 | olivier dufour | manager.Start (); |
14 | 5 | olivier dufour | |
15 | 5 | olivier dufour | </code> |
16 | 5 | olivier dufour | </pre> |
17 | 5 | olivier dufour | |
18 | 5 | olivier dufour | h2. Advanced Client |
19 | 5 | olivier dufour | |
20 | 5 | olivier dufour | |
21 | 5 | olivier dufour | <pre><code class="java"> |
22 | 5 | olivier dufour | |
23 | 5 | olivier dufour | |
24 | 1 | ClientEngine engine = new ClientEngine(new EngineSettings(downloadsPath, port)); |
|
25 | 1 | ||
26 | 1 | //DHT |
|
27 | 1 | DhtListener dhtListner = new UdpListener (new IPEndPoint (IPAddress.Any, port)); |
|
28 | 1 | DhtEngine dht = new DhtEngine (dhtListner); |
|
29 | 1 | engine.RegisterDht(dht); |
|
30 | 1 | dhtListner.Start(); |
|
31 | 5 | olivier dufour | //byte array of dht nodes can be null if you have never connect to DHT before today! |
32 | 1 | engine.DhtEngine.Start(nodes); |
|
33 | 1 | ||
34 | 1 | ||
35 | 1 | torrent = Torrent.Load("test.torrent"); |
|
36 | 1 | TorrentManager manager = new TorrentManager(torrent, downloadsPath, torrentDefaults); |
|
37 | 1 | ||
38 | 1 | //FastResume code need a BencodedDictionnary |
|
39 | 5 | olivier dufour | //If you jsut start the torrent, you have no fast resume |
40 | 5 | olivier dufour | // but if you have download a part of the torrent you can save fast resume data |
41 | 5 | olivier dufour | //(manager.SaveFastResume()) and restore it later to do a quicker load |
42 | 1 | manager.LoadFastResume(new FastResume (BEncDictFastResume)); |
|
43 | 1 | ||
44 | 1 | engine.Register(manager); |
|
45 | 1 | manager.Start (); |
|
46 | 1 | ||
47 | 1 | </code> |
|
48 | 2 | olivier dufour | </pre> |