Files
i2p.itoopie/apps/sam/python/doc/epydoc/html/private/i2p.socket-module.html

284 lines
12 KiB
HTML
Raw Normal View History

<?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">&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> ::
Module&nbsp;socket
</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.socket-module.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.socket-module.html" target="_top">no&nbsp;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">&nbsp;</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 --&gt; I2P Destination.</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.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">&nbsp;</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">&nbsp;</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="&lt;thread.lock object at 0x0089D0E0&gt;"><code>&lt;thread.lock&nbsp;object&nbsp;at&nbsp;0x0089D0E0&gt; </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 --&gt; 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">&gt;&gt;&gt; </span>a = i2p.socket(<span class="py-string">'Alice'</span>, i2p.SOCK_STREAM)
<span class="py-prompt">&gt;&gt;&gt; </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="&lt;thread.lock object at 0x0089D0E0&gt;"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
&lt;thread.lock object at 0x0089D0E0&gt; </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">&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>