55 lines
3.4 KiB
HTML
55 lines
3.4 KiB
HTML
<?xml version="1.0" encoding="utf-8" ?>
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
<meta name="generator" content="Docutils 0.3.8: http://docutils.sourceforge.net/" />
|
|
<title>client_test example program</title>
|
|
<link rel="stylesheet" href="style.css" type="text/css" />
|
|
</head>
|
|
<body>
|
|
<div class="document" id="client-test-example-program">
|
|
<h1 class="title">client_test example program</h1>
|
|
<p>Client test is a, more or less, complete bittorrent client. It lacks most
|
|
settings and you can't start or stop torrents once you've started it. All
|
|
the settings are hardcoded. The commandline arguments are:</p>
|
|
<pre class="literal-block">
|
|
client_test <filename1.torrent> <filename2.torrent> ...
|
|
</pre>
|
|
<p>You can start any number of torrent downloads/seeds via the commandline.
|
|
If one argument starts with <tt class="docutils literal"><span class="pre">http://</span></tt> it is interpreted as a tracker
|
|
announce url, and it expects an info-hash as the next argument. The info-hash
|
|
has ti be hex-encoded. For example: <tt class="docutils literal"><span class="pre">2410d4554d5ed856d69f426c38791673c59f4418</span></tt>.
|
|
If you pass an announce url and info-hash, a torrent-less download is started.
|
|
It relies on that at least one peer on the tracker is running a libtorrent based
|
|
client and has the metadata (.torrent file). The metadata extension in
|
|
libtorrent will then download it from that peer (or from those peers if more
|
|
than one).</p>
|
|
<p>While running, the <tt class="docutils literal"><span class="pre">client_test</span></tt> sample will look something like this:</p>
|
|
<div class="image"><img alt="client_test.png" src="client_test.png" /></div>
|
|
<p>The commands available in the client are:</p>
|
|
<blockquote>
|
|
<ul class="simple">
|
|
<li><tt class="docutils literal"><span class="pre">q</span></tt> quits the client (there will be a delay while the client waits
|
|
for tracker responses)</li>
|
|
<li><tt class="docutils literal"><span class="pre">l</span></tt> toggle log. Will display the log at the bottom, informing about
|
|
tracker and peer events.</li>
|
|
<li><tt class="docutils literal"><span class="pre">i</span></tt> toggles torrent info. Will show the peer list for each torrent.</li>
|
|
<li><tt class="docutils literal"><span class="pre">d</span></tt> toggle download info. Will show the block list for each torrent,
|
|
showing downloaded and requested blocks.</li>
|
|
<li><tt class="docutils literal"><span class="pre">p</span></tt> pause all torrents.</li>
|
|
<li><tt class="docutils literal"><span class="pre">u</span></tt> unpause all torrents.</li>
|
|
<li><tt class="docutils literal"><span class="pre">r</span></tt> force tracker reannounce for all torrents.</li>
|
|
</ul>
|
|
</blockquote>
|
|
<p>The list at the bottom (shown if you press <tt class="docutils literal"><span class="pre">d</span></tt>) shows which blocks has
|
|
been requested from which peer. The green background means that it has been
|
|
downloaded. It shows that fast peers will prefer to request whole pieces
|
|
instead of dowloading parts of pieces. It may make it easier to determine
|
|
which peer that sent the corrupt data if a piece fails the hash test.</p>
|
|
<div class="image"><img alt="unicode_support.png" src="unicode_support.png" /></div>
|
|
<p>There's unicode support on linux, MacOS X and Windows.</p>
|
|
</div>
|
|
</body>
|
|
</html>
|