Hosting a tracker
Version 3 (Alan McGovern, 07/30/2009 01:35 AM)
| 1 | 1 | h1. Tracker example |
|
|---|---|---|---|
| 2 | 1 | ||
| 3 | 3 | Alan McGovern | [[Tracker Example#Example-1|Example 1]] Shows how to create a basic public tracker, which tracks every torrent which it sees in an announce request |
| 4 | 3 | Alan McGovern | [[Tracker Example#Example-2|Example 2]] Shows how to create a private tracker, which only tracks torrents explicitly registered with it |
| 5 | 1 | ||
| 6 | 3 | Alan McGovern | h2. Example 1 |
| 7 | 1 | ||
| 8 | 3 | Alan McGovern | <pre><code class="java"> |
| 9 | 3 | Alan McGovern | public void StartTracker () |
| 10 | 3 | Alan McGovern | { |
| 11 | 3 | Alan McGovern | Tracker tracker = new Tracker(); |
| 12 | 1 | ||
| 13 | 3 | Alan McGovern | // When unregistered torrents are allowed, if a client requests peers for |
| 14 | 3 | Alan McGovern | // a torrent which is not currently monitored by the tracker, that torrent |
| 15 | 3 | Alan McGovern | // will be added automatically. This is useful for creating a 'public' tracker. |
| 16 | 3 | Alan McGovern | // Normally, if this is false, announce requests for torrents not already |
| 17 | 3 | Alan McGovern | // registered with the engine are sent an error message. |
| 18 | 3 | Alan McGovern | tracker.AllowUnregisteredTorrents = true; |
| 19 | 1 | ||
| 20 | 3 | Alan McGovern | // Set the interval between announce requests to 1 hour and min interval to 10 mins |
| 21 | 3 | Alan McGovern | tracker.AnnounceInterval = TimeSpan.FromHours(1); |
| 22 | 3 | Alan McGovern | tracker.MinAnnounceInterval = TimeSpan.FromMinutes(10); |
| 23 | 3 | Alan McGovern | |
| 24 | 3 | Alan McGovern | // Create a listener which will respond to scrape/announce requests |
| 25 | 3 | Alan McGovern | // You can pass a prefix like: http://153.462.23.1/announce which will |
| 26 | 3 | Alan McGovern | // create a listener on port 80 (the default HTTP port) which will handle |
| 27 | 3 | Alan McGovern | // all announce requests. |
| 28 | 3 | Alan McGovern | HttpListener listener = new HttpListener("http://myserver.com/announce"); |
| 29 | 3 | Alan McGovern | tracker.RegisterListener(listener); |
| 30 | 3 | Alan McGovern | listener.Start(); |
| 31 | 3 | Alan McGovern | } |
| 32 | 3 | Alan McGovern | </code></pre> |
| 33 | 3 | Alan McGovern | |
| 34 | 3 | Alan McGovern | h2. Example 2 |
| 35 | 3 | Alan McGovern | |
| 36 | 3 | Alan McGovern | <pre><code class="java"> |
| 37 | 3 | Alan McGovern | public void StartTracker () |
| 38 | 3 | Alan McGovern | { |
| 39 | 3 | Alan McGovern | Tracker tracker = new Tracker(); |
| 40 | 3 | Alan McGovern | |
| 41 | 3 | Alan McGovern | // When unregistered torrents are allowed, if a client requests peers for |
| 42 | 3 | Alan McGovern | // a torrent which is not currently monitored by the tracker, that torrent |
| 43 | 3 | Alan McGovern | // will be added automatically. This is useful for creating a 'public' tracker. |
| 44 | 3 | Alan McGovern | // Normally, if this is false, announce requests for torrents not already |
| 45 | 3 | Alan McGovern | // registered with the engine are sent an error message. |
| 46 | 3 | Alan McGovern | tracker.AllowUnregisteredTorrents = true; |
| 47 | 3 | Alan McGovern | |
| 48 | 3 | Alan McGovern | // Set the interval between announce requests to 1 hour and min interval to 10 mins |
| 49 | 3 | Alan McGovern | tracker.AnnounceInterval = TimeSpan.FromHours(1); |
| 50 | 3 | Alan McGovern | tracker.MinAnnounceInterval = TimeSpan.FromMinutes(10); |
| 51 | 3 | Alan McGovern | |
| 52 | 3 | Alan McGovern | // Create a listener which will respond to scrape/announce requests |
| 53 | 3 | Alan McGovern | // You can pass a prefix like: http://153.462.23.1/announce which will |
| 54 | 3 | Alan McGovern | // create a listener on port 80 (the default HTTP port) which will handle |
| 55 | 3 | Alan McGovern | // all announce requests. |
| 56 | 3 | Alan McGovern | HttpListener listener = new HttpListener("http://myserver.com/announce"); |
| 57 | 3 | Alan McGovern | tracker.RegisterListener(listener); |
| 58 | 3 | Alan McGovern | listener.Start(); |
| 59 | 3 | Alan McGovern | } |
| 60 | 3 | Alan McGovern | </code></pre> |