374 lines
20 KiB
HTML
374 lines
20 KiB
HTML
![]() |
|
||
|
<!doctype html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||
|
<html><head><title>Python: module i2p.sam</title>
|
||
|
</head><body bgcolor="#f0f0f8">
|
||
|
|
||
|
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
|
||
|
<tr bgcolor="#7799ee">
|
||
|
<td valign=bottom> <br>
|
||
|
<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="i2p.html"><font color="#ffffff">i2p</font></a>.sam</strong></big></big></font></td
|
||
|
><td align=right valign=bottom
|
||
|
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:///D|/code/i2p/i2p/sam.py">d:\code\i2p\i2p\sam.py</a></font></td></tr></table>
|
||
|
<p><tt>SAM Python API</tt></p>
|
||
|
<p>
|
||
|
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
|
||
|
<tr bgcolor="#aa55cc">
|
||
|
<td colspan=3 valign=bottom> <br>
|
||
|
<font color="#fffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
|
||
|
|
||
|
<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
|
||
|
<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="Queue.html">Queue</a><br>
|
||
|
<a href="copy.html">copy</a><br>
|
||
|
<a href="i2p.html">i2p</a><br>
|
||
|
</td><td width="25%" valign=top><a href="select.html">select</a><br>
|
||
|
<a href="socket.html">socket</a><br>
|
||
|
<a href="i2p.samclasses.html">i2p.samclasses</a><br>
|
||
|
</td><td width="25%" valign=top><a href="thread.html">thread</a><br>
|
||
|
<a href="threading.html">threading</a><br>
|
||
|
<a href="time.html">time</a><br>
|
||
|
</td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
|
||
|
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
|
||
|
<tr bgcolor="#ee77aa">
|
||
|
<td colspan=3 valign=bottom> <br>
|
||
|
<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
|
||
|
|
||
|
<tr><td bgcolor="#ee77aa"><tt> </tt></td><td> </td>
|
||
|
<td width="100%"><dl>
|
||
|
<dt><font face="helvetica, arial"><a href="i2p.html#Error">i2p.Error</a>(<a href="exceptions.html#Exception">exceptions.Exception</a>)
|
||
|
</font></dt><dd>
|
||
|
<dl>
|
||
|
<dt><font face="helvetica, arial"><a href="i2p.sam.html#Error">Error</a>
|
||
|
</font></dt><dd>
|
||
|
<dl>
|
||
|
<dt><font face="helvetica, arial"><a href="i2p.sam.html#BlockError">BlockError</a>
|
||
|
</font></dt><dt><font face="helvetica, arial"><a href="i2p.sam.html#ClosedError">ClosedError</a>
|
||
|
</font></dt><dt><font face="helvetica, arial"><a href="i2p.sam.html#NetworkError">NetworkError</a>
|
||
|
</font></dt><dt><font face="helvetica, arial"><a href="i2p.sam.html#Timeout">Timeout</a>
|
||
|
</font></dt></dl>
|
||
|
</dd>
|
||
|
</dl>
|
||
|
</dd>
|
||
|
<dt><font face="helvetica, arial"><a href="i2p.sam.html#Poll">Poll</a>
|
||
|
</font></dt><dt><font face="helvetica, arial"><a href="i2p.sam.html#Socket">Socket</a>
|
||
|
</font></dt><dt><font face="helvetica, arial"><a href="i2p.sam.html#Tunnel">Tunnel</a>
|
||
|
</font></dt><dd>
|
||
|
<dl>
|
||
|
<dt><font face="helvetica, arial"><a href="i2p.sam.html#TunnelClient">TunnelClient</a>
|
||
|
</font></dt><dt><font face="helvetica, arial"><a href="i2p.sam.html#TunnelServer">TunnelServer</a>
|
||
|
</font></dt></dl>
|
||
|
</dd>
|
||
|
</dl>
|
||
|
<p>
|
||
|
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
|
||
|
<tr bgcolor="#ffc8d8">
|
||
|
<td colspan=3 valign=bottom> <br>
|
||
|
<font color="#000000" face="helvetica, arial"><a name="BlockError">class <strong>BlockError</strong></a>(<a href="i2p.sam.html#Error">Error</a>)</font></td></tr>
|
||
|
|
||
|
<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
|
||
|
<td colspan=2><tt><a href="#Socket">Socket</a> call would have blocked.<br> </tt></td></tr>
|
||
|
<tr><td> </td>
|
||
|
<td width="100%"><dl><dt>Method resolution order:</dt>
|
||
|
<dd><a href="i2p.sam.html#BlockError">BlockError</a></dd>
|
||
|
<dd><a href="i2p.sam.html#Error">Error</a></dd>
|
||
|
<dd><a href="i2p.html#Error">i2p.Error</a></dd>
|
||
|
<dd><a href="exceptions.html#Exception">exceptions.Exception</a></dd>
|
||
|
</dl>
|
||
|
<hr>
|
||
|
Methods inherited from <a href="exceptions.html#Exception">exceptions.Exception</a>:<br>
|
||
|
<dl><dt><a name="BlockError-__getitem__"><strong>__getitem__</strong></a>(...)</dt></dl>
|
||
|
|
||
|
<dl><dt><a name="BlockError-__init__"><strong>__init__</strong></a>(...)</dt></dl>
|
||
|
|
||
|
<dl><dt><a name="BlockError-__str__"><strong>__str__</strong></a>(...)</dt></dl>
|
||
|
|
||
|
</td></tr></table> <p>
|
||
|
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
|
||
|
<tr bgcolor="#ffc8d8">
|
||
|
<td colspan=3 valign=bottom> <br>
|
||
|
<font color="#000000" face="helvetica, arial"><a name="ClosedError">class <strong>ClosedError</strong></a>(<a href="i2p.sam.html#Error">Error</a>)</font></td></tr>
|
||
|
|
||
|
<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
|
||
|
<td colspan=2><tt>A command was used on a socket that closed gracefully.<br> </tt></td></tr>
|
||
|
<tr><td> </td>
|
||
|
<td width="100%"><dl><dt>Method resolution order:</dt>
|
||
|
<dd><a href="i2p.sam.html#ClosedError">ClosedError</a></dd>
|
||
|
<dd><a href="i2p.sam.html#Error">Error</a></dd>
|
||
|
<dd><a href="i2p.html#Error">i2p.Error</a></dd>
|
||
|
<dd><a href="exceptions.html#Exception">exceptions.Exception</a></dd>
|
||
|
</dl>
|
||
|
<hr>
|
||
|
Methods inherited from <a href="exceptions.html#Exception">exceptions.Exception</a>:<br>
|
||
|
<dl><dt><a name="ClosedError-__getitem__"><strong>__getitem__</strong></a>(...)</dt></dl>
|
||
|
|
||
|
<dl><dt><a name="ClosedError-__init__"><strong>__init__</strong></a>(...)</dt></dl>
|
||
|
|
||
|
<dl><dt><a name="ClosedError-__str__"><strong>__str__</strong></a>(...)</dt></dl>
|
||
|
|
||
|
</td></tr></table> <p>
|
||
|
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
|
||
|
<tr bgcolor="#ffc8d8">
|
||
|
<td colspan=3 valign=bottom> <br>
|
||
|
<font color="#000000" face="helvetica, arial"><a name="Error">class <strong>Error</strong></a>(<a href="i2p.html#Error">i2p.Error</a>)</font></td></tr>
|
||
|
|
||
|
<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
|
||
|
<td colspan=2><tt>Base class for all SAM errors.<br> </tt></td></tr>
|
||
|
<tr><td> </td>
|
||
|
<td width="100%"><dl><dt>Method resolution order:</dt>
|
||
|
<dd><a href="i2p.sam.html#Error">Error</a></dd>
|
||
|
<dd><a href="i2p.html#Error">i2p.Error</a></dd>
|
||
|
<dd><a href="exceptions.html#Exception">exceptions.Exception</a></dd>
|
||
|
</dl>
|
||
|
<hr>
|
||
|
Methods inherited from <a href="exceptions.html#Exception">exceptions.Exception</a>:<br>
|
||
|
<dl><dt><a name="Error-__getitem__"><strong>__getitem__</strong></a>(...)</dt></dl>
|
||
|
|
||
|
<dl><dt><a name="Error-__init__"><strong>__init__</strong></a>(...)</dt></dl>
|
||
|
|
||
|
<dl><dt><a name="Error-__str__"><strong>__str__</strong></a>(...)</dt></dl>
|
||
|
|
||
|
</td></tr></table> <p>
|
||
|
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
|
||
|
<tr bgcolor="#ffc8d8">
|
||
|
<td colspan=3 valign=bottom> <br>
|
||
|
<font color="#000000" face="helvetica, arial"><a name="NetworkError">class <strong>NetworkError</strong></a>(<a href="i2p.sam.html#Error">Error</a>)</font></td></tr>
|
||
|
|
||
|
<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
|
||
|
<td colspan=2><tt>Network error occurred within I2P.<br>
|
||
|
The error object is a 2-tuple: (errtag, errdesc).<br>
|
||
|
errtag is a SAM error string,<br>
|
||
|
errdesc is a human readable error description.<br> </tt></td></tr>
|
||
|
<tr><td> </td>
|
||
|
<td width="100%"><dl><dt>Method resolution order:</dt>
|
||
|
<dd><a href="i2p.sam.html#NetworkError">NetworkError</a></dd>
|
||
|
<dd><a href="i2p.sam.html#Error">Error</a></dd>
|
||
|
<dd><a href="i2p.html#Error">i2p.Error</a></dd>
|
||
|
<dd><a href="exceptions.html#Exception">exceptions.Exception</a></dd>
|
||
|
</dl>
|
||
|
<hr>
|
||
|
Methods inherited from <a href="exceptions.html#Exception">exceptions.Exception</a>:<br>
|
||
|
<dl><dt><a name="NetworkError-__getitem__"><strong>__getitem__</strong></a>(...)</dt></dl>
|
||
|
|
||
|
<dl><dt><a name="NetworkError-__init__"><strong>__init__</strong></a>(...)</dt></dl>
|
||
|
|
||
|
<dl><dt><a name="NetworkError-__str__"><strong>__str__</strong></a>(...)</dt></dl>
|
||
|
|
||
|
</td></tr></table> <p>
|
||
|
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
|
||
|
<tr bgcolor="#ffc8d8">
|
||
|
<td colspan=3 valign=bottom> <br>
|
||
|
<font color="#000000" face="helvetica, arial"><a name="Poll">class <strong>Poll</strong></a></font></td></tr>
|
||
|
|
||
|
<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
|
||
|
<td colspan=2><tt>Class implementing poll interface. Works for Python sockets<br>
|
||
|
and SAM sockets.<br> </tt></td></tr>
|
||
|
<tr><td> </td>
|
||
|
<td width="100%">Methods defined here:<br>
|
||
|
<dl><dt><a name="Poll-__init__"><strong>__init__</strong></a>(self)</dt></dl>
|
||
|
|
||
|
<dl><dt><a name="Poll-poll"><strong>poll</strong></a>(self, timeout<font color="#909090">=None</font>)</dt></dl>
|
||
|
|
||
|
<dl><dt><a name="Poll-register"><strong>register</strong></a>(self, fd, eventmask<font color="#909090">=13</font>)</dt></dl>
|
||
|
|
||
|
<dl><dt><a name="Poll-unregister"><strong>unregister</strong></a>(self, fd)</dt></dl>
|
||
|
|
||
|
</td></tr></table> <p>
|
||
|
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
|
||
|
<tr bgcolor="#ffc8d8">
|
||
|
<td colspan=3 valign=bottom> <br>
|
||
|
<font color="#000000" face="helvetica, arial"><a name="Socket">class <strong>Socket</strong></a></font></td></tr>
|
||
|
|
||
|
<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
|
||
|
<td colspan=2><tt>A socket object.<br> </tt></td></tr>
|
||
|
<tr><td> </td>
|
||
|
<td width="100%">Methods defined here:<br>
|
||
|
<dl><dt><a name="Socket-__deepcopy__"><strong>__deepcopy__</strong></a>(self, memo)</dt></dl>
|
||
|
|
||
|
<dl><dt><a name="Socket-__init__"><strong>__init__</strong></a>(self, session, type, samaddr<font color="#909090">='127.0.0.1:7656'</font>, **kwargs)</dt><dd><tt>Equivalent to socket().</tt></dd></dl>
|
||
|
|
||
|
<dl><dt><a name="Socket-accept"><strong>accept</strong></a>(self)</dt></dl>
|
||
|
|
||
|
<dl><dt><a name="Socket-bind"><strong>bind</strong></a>(self, address)</dt></dl>
|
||
|
|
||
|
<dl><dt><a name="Socket-close"><strong>close</strong></a>(self)</dt></dl>
|
||
|
|
||
|
<dl><dt><a name="Socket-connect"><strong>connect</strong></a>(self, address)</dt></dl>
|
||
|
|
||
|
<dl><dt><a name="Socket-connect_ex"><strong>connect_ex</strong></a>(self, address)</dt></dl>
|
||
|
|
||
|
<dl><dt><a name="Socket-getpeername"><strong>getpeername</strong></a>(self)</dt></dl>
|
||
|
|
||
|
<dl><dt><a name="Socket-getsockname"><strong>getsockname</strong></a>(self)</dt></dl>
|
||
|
|
||
|
<dl><dt><a name="Socket-gettimeout"><strong>gettimeout</strong></a>(self)</dt></dl>
|
||
|
|
||
|
<dl><dt><a name="Socket-listen"><strong>listen</strong></a>(self, backlog)</dt></dl>
|
||
|
|
||
|
<dl><dt><a name="Socket-makefile"><strong>makefile</strong></a>(self, mode<font color="#909090">='r'</font>, bufsize<font color="#909090">=-1</font>)</dt></dl>
|
||
|
|
||
|
<dl><dt><a name="Socket-recv"><strong>recv</strong></a>(self, bufsize, flags<font color="#909090">=0</font>)</dt></dl>
|
||
|
|
||
|
<dl><dt><a name="Socket-recvfrom"><strong>recvfrom</strong></a>(self, bufsize, flags<font color="#909090">=0</font>)</dt><dd><tt>For a datagram or raw socket, bufsize = -1 indicates that the<br>
|
||
|
entire packet should be retrieved.</tt></dd></dl>
|
||
|
|
||
|
<dl><dt><a name="Socket-send"><strong>send</strong></a>(self, string, flags<font color="#909090">=0</font>)</dt></dl>
|
||
|
|
||
|
<dl><dt><a name="Socket-sendall"><strong>sendall</strong></a>(self, string, flags<font color="#909090">=0</font>)</dt></dl>
|
||
|
|
||
|
<dl><dt><a name="Socket-sendto"><strong>sendto</strong></a>(self, string, flags, address)</dt></dl>
|
||
|
|
||
|
<dl><dt><a name="Socket-setblocking"><strong>setblocking</strong></a>(self, flag)</dt></dl>
|
||
|
|
||
|
<dl><dt><a name="Socket-settimeout"><strong>settimeout</strong></a>(self, value)</dt></dl>
|
||
|
|
||
|
<hr>
|
||
|
Properties defined here:<br>
|
||
|
<dl><dt><strong>dest</strong></dt>
|
||
|
<dd><tt>Local I2P Destination of socket</tt></dd>
|
||
|
</dl>
|
||
|
<dl><dt><strong>session</strong></dt>
|
||
|
<dd><tt>Session name</tt></dd>
|
||
|
</dl>
|
||
|
<dl><dt><strong>type</strong></dt>
|
||
|
<dd><tt><a href="#Socket">Socket</a> type: SOCK_STREAM, SOCK_DGRAM, or SOCK_RAW.</tt></dd>
|
||
|
</dl>
|
||
|
</td></tr></table> <p>
|
||
|
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
|
||
|
<tr bgcolor="#ffc8d8">
|
||
|
<td colspan=3 valign=bottom> <br>
|
||
|
<font color="#000000" face="helvetica, arial"><a name="Timeout">class <strong>Timeout</strong></a>(<a href="i2p.sam.html#Error">Error</a>)</font></td></tr>
|
||
|
|
||
|
<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
|
||
|
<td colspan=2><tt>Time out occurred for a socket which had timeouts enabled<br>
|
||
|
via a prior call to settimeout().<br> </tt></td></tr>
|
||
|
<tr><td> </td>
|
||
|
<td width="100%"><dl><dt>Method resolution order:</dt>
|
||
|
<dd><a href="i2p.sam.html#Timeout">Timeout</a></dd>
|
||
|
<dd><a href="i2p.sam.html#Error">Error</a></dd>
|
||
|
<dd><a href="i2p.html#Error">i2p.Error</a></dd>
|
||
|
<dd><a href="exceptions.html#Exception">exceptions.Exception</a></dd>
|
||
|
</dl>
|
||
|
<hr>
|
||
|
Methods inherited from <a href="exceptions.html#Exception">exceptions.Exception</a>:<br>
|
||
|
<dl><dt><a name="Timeout-__getitem__"><strong>__getitem__</strong></a>(...)</dt></dl>
|
||
|
|
||
|
<dl><dt><a name="Timeout-__init__"><strong>__init__</strong></a>(...)</dt></dl>
|
||
|
|
||
|
<dl><dt><a name="Timeout-__str__"><strong>__str__</strong></a>(...)</dt></dl>
|
||
|
|
||
|
</td></tr></table> <p>
|
||
|
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
|
||
|
<tr bgcolor="#ffc8d8">
|
||
|
<td colspan=3 valign=bottom> <br>
|
||
|
<font color="#000000" face="helvetica, arial"><a name="Tunnel">class <strong>Tunnel</strong></a></font></td></tr>
|
||
|
|
||
|
<tr><td bgcolor="#ffc8d8"><tt> </tt></td><td> </td>
|
||
|
<td width="100%">Methods defined here:<br>
|
||
|
<dl><dt><a name="Tunnel-__init__"><strong>__init__</strong></a>(self, receive, make_send, nconnect<font color="#909090">=-1</font>, timeout<font color="#909090">=60.0</font>)</dt><dd><tt>A <a href="#Tunnel">Tunnel</a> relays connections from a 'receive' socket to one<br>
|
||
|
or more 'send' sockets. The receive socket must be bound<br>
|
||
|
and listening. For each incoming connection, a new send<br>
|
||
|
socket is created by calling make_send(). Data is then<br>
|
||
|
exchanged between the created streams until one socket is<br>
|
||
|
closed. nconnect is the maximum number of simultaneous<br>
|
||
|
connections (-1 for infinite), and timeout is the time that<br>
|
||
|
a single connection can last for (None allows a connection<br>
|
||
|
to last forever).<br>
|
||
|
<br>
|
||
|
Sockets must accept stream traffic and support the Python<br>
|
||
|
socket interface. A separate daemonic thread is created to<br>
|
||
|
manage the tunnel. For high performance, make_send() should<br>
|
||
|
make a socket and connect in non-blocking mode (you should<br>
|
||
|
catch and discard the sam.<a href="#BlockError">BlockError</a> or socket.error due to<br>
|
||
|
executing connect on a non-blocking socket).<br>
|
||
|
<br>
|
||
|
Security Note:<br>
|
||
|
A firewall is needed to maintain the end user's anonymity.<br>
|
||
|
An attacker could keep a tunnel socket open by pinging it<br>
|
||
|
regularly. The accepted sockets from 'receive' must prevent<br>
|
||
|
this by closing down eventually.<br>
|
||
|
<br>
|
||
|
<a href="#Socket">Socket</a> errors do not cause the <a href="#Tunnel">Tunnel</a> to shut down.</tt></dd></dl>
|
||
|
|
||
|
<dl><dt><a name="Tunnel-close"><strong>close</strong></a>(self)</dt><dd><tt>Close all connections made for this tunnel.</tt></dd></dl>
|
||
|
|
||
|
</td></tr></table> <p>
|
||
|
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
|
||
|
<tr bgcolor="#ffc8d8">
|
||
|
<td colspan=3 valign=bottom> <br>
|
||
|
<font color="#000000" face="helvetica, arial"><a name="TunnelClient">class <strong>TunnelClient</strong></a>(<a href="i2p.sam.html#Tunnel">Tunnel</a>)</font></td></tr>
|
||
|
|
||
|
<tr><td bgcolor="#ffc8d8"><tt> </tt></td><td> </td>
|
||
|
<td width="100%">Methods defined here:<br>
|
||
|
<dl><dt><a name="TunnelClient-__init__"><strong>__init__</strong></a>(self, session, port, dest, samaddr<font color="#909090">='127.0.0.1:7656'</font>, nconnect<font color="#909090">=-1</font>, timeout<font color="#909090">=None</font>, **kwargs)</dt><dd><tt>Tunnels localhost:port --> I2P Destination dest.<br>
|
||
|
<br>
|
||
|
A session named 'session' is created locally, for purposes<br>
|
||
|
of routing to 'dest'. nconnect and timeout are the maximum<br>
|
||
|
number of connections and maximum time per connection. All<br>
|
||
|
other arguments are passed to sam.socket(). This call blocks<br>
|
||
|
until the tunnel is ready.</tt></dd></dl>
|
||
|
|
||
|
<hr>
|
||
|
Properties defined here:<br>
|
||
|
<dl><dt><strong>dest</strong></dt>
|
||
|
<dd><strong><em>get</em></strong> = 'Local Destination used for routing.'</dd>
|
||
|
</dl>
|
||
|
<dl><dt><strong>remotedest</strong></dt>
|
||
|
<dd><tt>Remote Destination.</tt></dd>
|
||
|
</dl>
|
||
|
<dl><dt><strong>session</strong></dt>
|
||
|
<dd><strong><em>get</em></strong> = 'Session name for local Destination.'</dd>
|
||
|
</dl>
|
||
|
<hr>
|
||
|
Methods inherited from <a href="i2p.sam.html#Tunnel">Tunnel</a>:<br>
|
||
|
<dl><dt><a name="TunnelClient-close"><strong>close</strong></a>(self)</dt><dd><tt>Close all connections made for this tunnel.</tt></dd></dl>
|
||
|
|
||
|
</td></tr></table> <p>
|
||
|
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
|
||
|
<tr bgcolor="#ffc8d8">
|
||
|
<td colspan=3 valign=bottom> <br>
|
||
|
<font color="#000000" face="helvetica, arial"><a name="TunnelServer">class <strong>TunnelServer</strong></a>(<a href="i2p.sam.html#Tunnel">Tunnel</a>)</font></td></tr>
|
||
|
|
||
|
<tr><td bgcolor="#ffc8d8"><tt> </tt></td><td> </td>
|
||
|
<td width="100%">Methods defined here:<br>
|
||
|
<dl><dt><a name="TunnelServer-__init__"><strong>__init__</strong></a>(self, session, port, samaddr<font color="#909090">='127.0.0.1:7656'</font>, nconnect<font color="#909090">=-1</font>, timeout<font color="#909090">=None</font>, **kwargs)</dt><dd><tt>Tunnels incoming SAM streams --> localhost:port.<br>
|
||
|
<br>
|
||
|
nconnect and timeout are the maximum number of connections<br>
|
||
|
and maximum time per connection. All other arguments are<br>
|
||
|
passed to sam.socket(). This call blocks until the tunnel<br>
|
||
|
is ready.</tt></dd></dl>
|
||
|
|
||
|
<hr>
|
||
|
Properties defined here:<br>
|
||
|
<dl><dt><strong>dest</strong></dt>
|
||
|
<dd><tt>I2P Destination of server.</tt></dd>
|
||
|
</dl>
|
||
|
<dl><dt><strong>session</strong></dt>
|
||
|
<dd><tt>Session name for server.</tt></dd>
|
||
|
</dl>
|
||
|
<hr>
|
||
|
Methods inherited from <a href="i2p.sam.html#Tunnel">Tunnel</a>:<br>
|
||
|
<dl><dt><a name="TunnelServer-close"><strong>close</strong></a>(self)</dt><dd><tt>Close all connections made for this tunnel.</tt></dd></dl>
|
||
|
|
||
|
</td></tr></table></td></tr></table><p>
|
||
|
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
|
||
|
<tr bgcolor="#55aa55">
|
||
|
<td colspan=3 valign=bottom> <br>
|
||
|
<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
|
||
|
|
||
|
<tr><td bgcolor="#55aa55"><tt> </tt></td><td> </td>
|
||
|
<td width="100%"><strong>MAX_DGRAM</strong> = 31744<br>
|
||
|
<strong>MAX_RAW</strong> = 32768<br>
|
||
|
<strong>MSG_DONTWAIT</strong> = 128<br>
|
||
|
<strong>MSG_PEEK</strong> = 2<br>
|
||
|
<strong>MSG_WAITALL</strong> = 64<br>
|
||
|
<strong>POLLERR</strong> = 8<br>
|
||
|
<strong>POLLHUP</strong> = 16<br>
|
||
|
<strong>POLLIN</strong> = 1<br>
|
||
|
<strong>POLLNVAL</strong> = 32<br>
|
||
|
<strong>POLLOUT</strong> = 4<br>
|
||
|
<strong>POLLPRI</strong> = 1<br>
|
||
|
<strong>SOCK_DGRAM</strong> = 2<br>
|
||
|
<strong>SOCK_RAW</strong> = 3<br>
|
||
|
<strong>SOCK_STREAM</strong> = 1<br>
|
||
|
<strong>samaddr</strong> = '127.0.0.1:7656'<br>
|
||
|
<strong>samver</strong> = 1.0</td></tr></table>
|
||
|
</body></html>
|