Files
i2p.android.base/apps/sam/python/doc/epydoc/html/private/i2p.tunnel.Tunnel-class.html
2004-08-02 14:00:56 +00:00

148 lines
7.1 KiB
HTML

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>i2p.tunnel.Tunnel</title>
<link rel="stylesheet" href="epydoc.css" type="text/css"></link>
</head>
<body bgcolor="white" text="black" link="blue" vlink="#204080"
alink="#204080">
<!-- =========== START OF NAVBAR =========== -->
<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
<tr valign="center">
<th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="i2p-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
<th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
<th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
<th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
<th class="navbar" width="100%"></th>
</tr>
</table>
<table width="100%" cellpadding="0" cellspacing="0">
<tr valign="top">
<td width="100%">
<font size="-1"><b class="breadcrumbs">
<a href="i2p-module.html">Package&nbsp;i2p</a> ::
<a href="i2p.tunnel-module.html">Module&nbsp;tunnel</a> ::
Class&nbsp;Tunnel
</b></font></br>
</td>
<td><table cellpadding="0" cellspacing="0">
<tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/i2p.tunnel.Tunnel-class.html">hide&nbsp;private</a>]</font></td></tr>
<tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="i2p.tunnel.Tunnel-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
</table></td>
</tr></table>
<!-- =========== START OF CLASS DESCRIPTION =========== -->
<h2 class="class">Class Tunnel</h2>
<dl><dt><b>Known Subclasses:</b></dt>
<dd>
<a href="i2p.tunnel.TunnelClient-class.html"><code>TunnelClient</code></a>,
<a href="i2p.tunnel.TunnelServer-class.html"><code>TunnelServer</code></a></dd></dl>
<hr/>
<!-- =========== START OF METHOD SUMMARY =========== -->
<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="summary">
<th colspan="2">Method Summary</th></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
<td><code><span class="summary-sig"><a href="i2p.tunnel.Tunnel-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>receive</span>,
<span class=summary-sig-arg>make_send</span>,
<span class=summary-sig-arg>nconnect</span>,
<span class=summary-sig-arg>timeout</span>)</span></code>
<br />
A Tunnel relays connections from a 'receive' socket to one or more
'send' sockets.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
<td><code><span class="summary-sig"><a href="i2p.tunnel.Tunnel-class.html#close" class="summary-sig-name"><code>close</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
<br />
Close all connections made for this tunnel.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
<td><code><span class="summary-sig"><a href="..\private\i2p.tunnel.Tunnel-class.html#_run" class="summary-sig-name"><code>_run</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
<br />
Manage the tunnel in a separate thread.</td></tr>
</table><br />
<!-- =========== START OF METHOD DETAILS =========== -->
<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="details">
<th colspan="2">Method Details</th></tr>
</table>
<a name="__init__"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">__init__</span>(<span class=sig-arg>self</span>,
<span class=sig-arg>receive</span>,
<span class=sig-arg>make_send</span>,
<span class=sig-arg>nconnect</span>=<span class=sig-default>-1</span>,
<span class=sig-arg>timeout</span>=<span class=sig-default>60.0</span>)</span>
<br /><i>(Constructor)</i>
</h3>
<p>A Tunnel relays connections from a 'receive' socket to one or more
'send' sockets. The receive socket must be bound and listening. For
each incoming connection, a new send socket is created by calling
make_send(). Data is then exchanged between the created streams until
one socket is closed. nconnect is the maximum number of simultaneous
connections (-1 for infinite), and timeout is the time that a single
connection can last for (None allows a connection to last forever).</p>
<p>Sockets must accept stream traffic and support the Python socket
interface. A separate daemonic thread is created to manage the tunnel.
For high performance, make_send() should make a socket and connect in
non-blocking mode (you should catch and discard the socket.BlockError
or socket.error due to executing connect on a non-blocking socket).</p>
<p>Security Note: A firewall is needed to maintain the end user's
anonymity. An attacker could keep a tunnel socket open by pinging it
regularly. The accepted sockets from 'receive' must prevent this by
closing down eventually.</p>
Socket errors do not cause the Tunnel to shut down.
<dl><dt></dt><dd>
</dd></dl>
</td></tr></table>
<a name="close"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">close</span>(<span class=sig-arg>self</span>)</span>
</h3>
Close all connections made for this tunnel.
<dl><dt></dt><dd>
</dd></dl>
</td></tr></table>
<a name="_run"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">_run</span>(<span class=sig-arg>self</span>)</span>
</h3>
Manage the tunnel in a separate thread.
<dl><dt></dt><dd>
</dd></dl>
</td></tr></table>
<br />
<!-- =========== START OF NAVBAR =========== -->
<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
<tr valign="center">
<th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="i2p-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
<th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
<th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
<th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
<th class="navbar" width="100%"></th>
</tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td align="left"><font size="-2">Generated by Epydoc 2.1 on Mon Aug 02 01:07:41 2004</font></td>
<td align="right"><a href="http://epydoc.sourceforge.net"
><font size="-2">http://epydoc.sf.net</font></a></td>
</tr>
</table>
</body>
</html>