284 lines
12 KiB
HTML
284 lines
12 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.socket</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"> <a class="navbar" href="i2p-module.html">Home</a> </th>
|
|
<th class="navbar"> <a class="navbar" href="trees.html">Trees</a> </th>
|
|
<th class="navbar"> <a class="navbar" href="indices.html">Index</a> </th>
|
|
<th class="navbar"> <a class="navbar" href="help.html">Help</a> </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 i2p</a> ::
|
|
Module socket
|
|
</b></font></br>
|
|
</td>
|
|
<td><table cellpadding="0" cellspacing="0">
|
|
<tr><td align="right"><font size="-2">[show private | <a href="../public/i2p.socket-module.html">hide private</a>]</font></td></tr>
|
|
<tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a> | <a href="i2p.socket-module.html" target="_top">no frames</a>]</font></td></tr>
|
|
</table></td>
|
|
</tr></table>
|
|
|
|
<!-- =========== START OF MODULE DESCRIPTION =========== -->
|
|
<h2 class="module">Module i2p.socket</h2>
|
|
|
|
Emulation of Python socket module using SAM.
|
|
<hr/>
|
|
|
|
<!-- =========== START OF CLASSES =========== -->
|
|
<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
|
|
<tr bgcolor="#70b0f0" class="summary">
|
|
<th colspan="2">Classes</th></tr>
|
|
<tr><td width="15%">
|
|
<b><a href="i2p.socket.Socket-class.html"><code>Socket</code></a></b></td>
|
|
<td>A socket object.</td></tr>
|
|
</table><br />
|
|
|
|
|
|
<!-- =========== START OF EXCEPTIONS =========== -->
|
|
<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
|
|
<tr bgcolor="#70b0f0" class="summary">
|
|
<th colspan="2">Exceptions</th></tr>
|
|
<tr><td width="15%">
|
|
<b><a href="i2p.socket.BlockError-class.html"><code>BlockError</code></a></b></td>
|
|
<td>Socket call would have blocked.</td></tr>
|
|
<tr><td width="15%">
|
|
<b><a href="i2p.socket.ClosedError-class.html"><code>ClosedError</code></a></b></td>
|
|
<td>A command was used on a socket that closed gracefully.</td></tr>
|
|
<tr><td width="15%">
|
|
<b><a href="i2p.socket.Error-class.html"><code>Error</code></a></b></td>
|
|
<td>Base class for all SAM errors.</td></tr>
|
|
<tr><td width="15%">
|
|
<b><a href="i2p.socket.NetworkError-class.html"><code>NetworkError</code></a></b></td>
|
|
<td>Network error occurred within I2P.</td></tr>
|
|
<tr><td width="15%">
|
|
<b><a href="i2p.socket.Timeout-class.html"><code>Timeout</code></a></b></td>
|
|
<td>Time out occurred for a socket which had timeouts enabled via a prior
|
|
call to settimeout().</td></tr>
|
|
</table><br />
|
|
|
|
|
|
<!-- =========== START OF FUNCTION SUMMARY =========== -->
|
|
<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
|
|
<tr bgcolor="#70b0f0" class="summary">
|
|
<th colspan="2">Function Summary</th></tr>
|
|
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
|
|
<td><code><span class="summary-sig"><a href="i2p.socket-module.html#resolve" class="summary-sig-name"><code>resolve</code></a>(<span class=summary-sig-arg>host</span>,
|
|
<span class=summary-sig-arg>samaddr</span>)</span></code>
|
|
<br />
|
|
Resolve I2P host name --> I2P Destination.</td></tr>
|
|
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
|
|
<td><code><span class="summary-sig"><a href="i2p.socket-module.html#socket" class="summary-sig-name"><code>socket</code></a>(<span class=summary-sig-arg>session</span>,
|
|
<span class=summary-sig-arg>type</span>,
|
|
<span class=summary-sig-arg>samaddr</span>,
|
|
<span class="summary-sig-kwarg">**kwargs</span>)</span></code>
|
|
<br />
|
|
Create a new socket.</td></tr>
|
|
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
|
|
<td><code><span class="summary-sig"><a href="..\private\i2p.socket-module.html#_make_session" class="summary-sig-name"><code>_make_session</code></a>(<span class=summary-sig-arg>session</span>,
|
|
<span class=summary-sig-arg>type</span>,
|
|
<span class=summary-sig-arg>samaddr</span>,
|
|
<span class="summary-sig-kwarg">**kwargs</span>)</span></code>
|
|
<br />
|
|
Make a session object (eg samclasses.StreamSession).</td></tr>
|
|
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
|
|
<td><code><span class="summary-sig"><a href="..\private\i2p.socket-module.html#_wrap_stream" class="summary-sig-name"><code>_wrap_stream</code></a>(<span class=summary-sig-arg>stream</span>,
|
|
<span class=summary-sig-arg>parent_socket</span>)</span></code>
|
|
<br />
|
|
Wraps a Socket object around a samclasses.Stream object.</td></tr>
|
|
</table><br />
|
|
|
|
|
|
<!-- =========== START OF VARIABLE SUMMARY =========== -->
|
|
<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
|
|
<tr bgcolor="#70b0f0" class="summary">
|
|
<th colspan="2">Variable Summary</th></tr>
|
|
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>lock</code></font></td>
|
|
<td><b><a href="..\private\i2p.socket-module.html#_session_lock"><code>_session_lock</code></a></b> = <span title="<thread.lock object at 0x0089D0E0>"><code><thread.lock object at 0x0089D0E0> </code>
|
|
</span></td></tr>
|
|
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>dict</code></font></td>
|
|
<td><b><a href="..\private\i2p.socket-module.html#_sessions"><code>_sessions</code></a></b> = <span title="{}"><code>{} </code>
|
|
</span></td></tr>
|
|
</table><br />
|
|
|
|
|
|
<!-- =========== START OF FUNCTION DETAILS =========== -->
|
|
<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
|
|
<tr bgcolor="#70b0f0" class="details">
|
|
<th colspan="2">Function Details</th></tr>
|
|
</table>
|
|
|
|
<a name="resolve"></a>
|
|
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
|
|
<h3><span class="sig"><span class="sig-name">resolve</span>(<span class=sig-arg>host</span>,
|
|
<span class=sig-arg>samaddr</span>=<span class=sig-default>'127.0.0.1:7656'</span>)</span>
|
|
</h3>
|
|
Resolve I2P host name --> I2P Destination. Returns the same
|
|
string if host is already a Destination.
|
|
<dl><dt></dt><dd>
|
|
</dd></dl>
|
|
</td></tr></table>
|
|
|
|
<a name="socket"></a>
|
|
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
|
|
<h3><span class="sig"><span class="sig-name">socket</span>(<span class=sig-arg>session</span>,
|
|
<span class=sig-arg>type</span>,
|
|
<span class=sig-arg>samaddr</span>=<span class=sig-default>'127.0.0.1:7656'</span>,
|
|
<span class="sig-kwarg">**kwargs</span>)</span>
|
|
</h3>
|
|
<p>Create a new socket. Argument session should be a session name -- if
|
|
the name has not yet been used, an I2P Destination will be created for
|
|
it, otherwise, the existing Destination will be re-used. An empty
|
|
session string causes a transient session to be created. Argument type
|
|
is one of SOCK_STREAM, SOCK_DGRAM, or SOCK_RAW.</p>
|
|
I2P configuration keyword arguments:
|
|
<ul>
|
|
<li>
|
|
in_depth - depth of incoming tunnel (default 2)
|
|
</li>
|
|
<li>
|
|
out_depth - depth of outgoing tunnel (default 2)
|
|
</li>
|
|
</ul>
|
|
<p>A single session may be shared by more than one socket, if the
|
|
sockets are the same type, and if the sockets are created within the
|
|
same Python process. The socket objects are multithread-safe.</p>
|
|
Examples:
|
|
<pre class="doctestblock">
|
|
<span class="py-src"><span class="py-prompt">>>> </span>a = i2p.socket(<span class="py-string">'Alice'</span>, i2p.SOCK_STREAM)
|
|
<span class="py-prompt">>>> </span>b = i2p.socket(<span class="py-string">'Bob'</span>, i2p.SOCK_DGRAM,</span>
|
|
<span class="py-output">in_depth=2, out_depth=5)</span></pre>
|
|
The created object behaves identically to a socket from module
|
|
socket, with the following exceptions:
|
|
<ul>
|
|
<li>
|
|
I2P Destinations are used as address arguments [1].
|
|
</li>
|
|
<li>
|
|
bind is a no-op: sockets are always bound.
|
|
</li>
|
|
<li>
|
|
send* methods send all data and are non-blocking.
|
|
</li>
|
|
</ul>
|
|
<p>A given session name can only be open in a single Python program at
|
|
a time. If you need to overcome this limitation, consider patching
|
|
I2P.</p>
|
|
<p>[1]. Alternatively, a host name can be used as an address. It will
|
|
be resolved using hosts.txt.</p>
|
|
<p>For details on how to use socket objects, see
|
|
http://www.python.org/doc/current/lib/socket-objects.html</p>
|
|
See the examples directory for code examples.
|
|
<dl><dt></dt><dd>
|
|
</dd></dl>
|
|
</td></tr></table>
|
|
|
|
<a name="_make_session"></a>
|
|
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
|
|
<h3><span class="sig"><span class="sig-name">_make_session</span>(<span class=sig-arg>session</span>,
|
|
<span class=sig-arg>type</span>,
|
|
<span class=sig-arg>samaddr</span>,
|
|
<span class="sig-kwarg">**kwargs</span>)</span>
|
|
</h3>
|
|
Make a session object (eg samclasses.StreamSession). Same arguments
|
|
as socket(). Return an existing session object if one has been
|
|
previously created under the given name.
|
|
<dl><dt></dt><dd>
|
|
</dd></dl>
|
|
</td></tr></table>
|
|
|
|
<a name="_wrap_stream"></a>
|
|
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
|
|
<h3><span class="sig"><span class="sig-name">_wrap_stream</span>(<span class=sig-arg>stream</span>,
|
|
<span class=sig-arg>parent_socket</span>)</span>
|
|
</h3>
|
|
Wraps a Socket object around a samclasses.Stream object.
|
|
<dl><dt></dt><dd>
|
|
</dd></dl>
|
|
</td></tr></table>
|
|
<br />
|
|
|
|
|
|
<!-- =========== START OF VARIABLE DETAILS =========== -->
|
|
<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
|
|
<tr bgcolor="#70b0f0" class="details">
|
|
<th colspan="2">Variable Details</th></tr>
|
|
</table>
|
|
<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
|
|
<a name="_session_lock"></a>
|
|
<h3>_session_lock</h3>
|
|
<dl>
|
|
<dt></dt>
|
|
<dd>
|
|
<dl>
|
|
<dt><b>Type:</b></dt>
|
|
<dd>
|
|
<code>lock</code>
|
|
|
|
</dd>
|
|
<span title="<thread.lock object at 0x0089D0E0>"> <dt><b>Value:</b></dt>
|
|
<dd><table><tr><td>
|
|
<pre class="variable">
|
|
<thread.lock object at 0x0089D0E0> </pre>
|
|
</td></tr></table></dd>
|
|
</span> </dl>
|
|
</dd>
|
|
</dl></td></tr></table>
|
|
<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
|
|
<a name="_sessions"></a>
|
|
<h3>_sessions</h3>
|
|
<dl>
|
|
<dt></dt>
|
|
<dd>
|
|
<dl>
|
|
<dt><b>Type:</b></dt>
|
|
<dd>
|
|
<code>dict</code>
|
|
|
|
</dd>
|
|
<span title="{}"> <dt><b>Value:</b></dt>
|
|
<dd><table><tr><td>
|
|
<pre class="variable">
|
|
{} </pre>
|
|
</td></tr></table></dd>
|
|
</span> </dl>
|
|
</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"> <a class="navbar" href="i2p-module.html">Home</a> </th>
|
|
<th class="navbar"> <a class="navbar" href="trees.html">Trees</a> </th>
|
|
<th class="navbar"> <a class="navbar" href="indices.html">Index</a> </th>
|
|
<th class="navbar"> <a class="navbar" href="help.html">Help</a> </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>
|