384 lines
18 KiB
HTML
384 lines
18 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>SocketServer.TCPServer</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">
|
|
Module SocketServer ::
|
|
Class TCPServer
|
|
</b></font></br>
|
|
</td>
|
|
<td><table cellpadding="0" cellspacing="0">
|
|
<tr><td align="right"><font size="-2">[show private | <a href="../public/SocketServer.TCPServer-class.html">hide private</a>]</font></td></tr>
|
|
<tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a> | <a href="SocketServer.TCPServer-class.html" target="_top">no frames</a>]</font></td></tr>
|
|
</table></td>
|
|
</tr></table>
|
|
|
|
<!-- =========== START OF CLASS DESCRIPTION =========== -->
|
|
<h2 class="class">Class TCPServer</h2>
|
|
|
|
<pre class="base-tree">
|
|
<a href="..\private\SocketServer.BaseServer-class.html"><code>BaseServer</code></a> --+
|
|
|
|
|
<b>TCPServer</b>
|
|
</pre><br />
|
|
|
|
<dl><dt><b>Known Subclasses:</b></dt>
|
|
<dd>
|
|
<a href="BaseHTTPServer.HTTPServer-class.html"><code>HTTPServer</code></a>,
|
|
<a href="i2p.SocketServer.TCPServer-class.html"><code>TCPServer</code></a>,
|
|
<a href="SocketServer.UDPServer-class.html"><code>UDPServer</code></a></dd></dl>
|
|
|
|
<hr/>
|
|
|
|
<pre class="literalblock">
|
|
Base class for various socket-based server classes.
|
|
|
|
Defaults to synchronous IP stream (i.e., TCP).
|
|
|
|
Methods for the caller:
|
|
|
|
- __init__(server_address, RequestHandlerClass)
|
|
- serve_forever()
|
|
- handle_request() # if you don't use serve_forever()
|
|
- fileno() -> int # for select()
|
|
|
|
Methods that may be overridden:
|
|
|
|
- server_bind()
|
|
- server_activate()
|
|
- get_request() -> request, client_address
|
|
- verify_request(request, client_address)
|
|
- process_request(request, client_address)
|
|
- close_request(request)
|
|
- handle_error()
|
|
|
|
Methods for derived classes:
|
|
|
|
- finish_request(request, client_address)
|
|
|
|
Class variables that may be overridden by derived classes or
|
|
instances:
|
|
|
|
- address_family
|
|
- socket_type
|
|
- request_queue_size (only for stream sockets)
|
|
- allow_reuse_address
|
|
|
|
Instance variables:
|
|
|
|
- server_address
|
|
- RequestHandlerClass
|
|
- socket
|
|
</pre>
|
|
<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"> </font></td>
|
|
<td><code><span class="summary-sig"><a href="SocketServer.TCPServer-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class=summary-sig-arg>self</span>,
|
|
<span class=summary-sig-arg>server_address</span>,
|
|
<span class=summary-sig-arg>RequestHandlerClass</span>)</span></code>
|
|
<br />
|
|
Constructor.</td></tr>
|
|
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
|
|
<td><code><span class="summary-sig"><a href="SocketServer.TCPServer-class.html#close_request" class="summary-sig-name"><code>close_request</code></a>(<span class=summary-sig-arg>self</span>,
|
|
<span class=summary-sig-arg>request</span>)</span></code>
|
|
<br />
|
|
Called to clean up an individual request.</td></tr>
|
|
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
|
|
<td><code><span class="summary-sig"><a href="SocketServer.TCPServer-class.html#fileno" class="summary-sig-name"><code>fileno</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
|
|
<br />
|
|
Return socket file number.</td></tr>
|
|
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
|
|
<td><code><span class="summary-sig"><a href="SocketServer.TCPServer-class.html#get_request" class="summary-sig-name"><code>get_request</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
|
|
<br />
|
|
Get the request and client address from the socket.</td></tr>
|
|
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
|
|
<td><code><span class="summary-sig"><a href="SocketServer.TCPServer-class.html#server_activate" class="summary-sig-name"><code>server_activate</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
|
|
<br />
|
|
Called by constructor to activate the server.</td></tr>
|
|
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
|
|
<td><code><span class="summary-sig"><a href="SocketServer.TCPServer-class.html#server_bind" class="summary-sig-name"><code>server_bind</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
|
|
<br />
|
|
Called by constructor to bind the socket.</td></tr>
|
|
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
|
|
<td><code><span class="summary-sig"><a href="SocketServer.TCPServer-class.html#server_close" class="summary-sig-name"><code>server_close</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
|
|
<br />
|
|
Called to clean-up the server.</td></tr>
|
|
<tr bgcolor="#e8f0f8" class="group">
|
|
<th colspan="2"> Inherited from BaseServer</th></tr>
|
|
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
|
|
<td><code><span class="summary-sig"><a href="..\private\SocketServer.BaseServer-class.html#finish_request" class="summary-sig-name"><code>finish_request</code></a>(<span class=summary-sig-arg>self</span>,
|
|
<span class=summary-sig-arg>request</span>,
|
|
<span class=summary-sig-arg>client_address</span>)</span></code>
|
|
<br />
|
|
Finish one request by instantiating RequestHandlerClass.</td></tr>
|
|
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
|
|
<td><code><span class="summary-sig"><a href="..\private\SocketServer.BaseServer-class.html#handle_error" class="summary-sig-name"><code>handle_error</code></a>(<span class=summary-sig-arg>self</span>,
|
|
<span class=summary-sig-arg>request</span>,
|
|
<span class=summary-sig-arg>client_address</span>)</span></code>
|
|
<br />
|
|
Handle an error gracefully.</td></tr>
|
|
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
|
|
<td><code><span class="summary-sig"><a href="..\private\SocketServer.BaseServer-class.html#handle_request" class="summary-sig-name"><code>handle_request</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
|
|
<br />
|
|
Handle one request, possibly blocking.</td></tr>
|
|
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
|
|
<td><code><span class="summary-sig"><a href="..\private\SocketServer.BaseServer-class.html#process_request" class="summary-sig-name"><code>process_request</code></a>(<span class=summary-sig-arg>self</span>,
|
|
<span class=summary-sig-arg>request</span>,
|
|
<span class=summary-sig-arg>client_address</span>)</span></code>
|
|
<br />
|
|
Call finish_request.</td></tr>
|
|
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
|
|
<td><code><span class="summary-sig"><a href="..\private\SocketServer.BaseServer-class.html#serve_forever" class="summary-sig-name"><code>serve_forever</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
|
|
<br />
|
|
Handle one request at a time until doomsday.</td></tr>
|
|
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
|
|
<td><code><span class="summary-sig"><a href="..\private\SocketServer.BaseServer-class.html#verify_request" class="summary-sig-name"><code>verify_request</code></a>(<span class=summary-sig-arg>self</span>,
|
|
<span class=summary-sig-arg>request</span>,
|
|
<span class=summary-sig-arg>client_address</span>)</span></code>
|
|
<br />
|
|
Verify the request.</td></tr>
|
|
</table><br />
|
|
|
|
|
|
<!-- =========== START OF CLASS VARIABLE SUMMARY =========== -->
|
|
<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
|
|
<tr bgcolor="#70b0f0" class="summary">
|
|
<th colspan="2">Class Variable Summary</th></tr>
|
|
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
|
|
<td><b><a href="SocketServer.TCPServer-class.html#address_family"><code>address_family</code></a></b> = <span title="2">2 </span></td></tr>
|
|
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>bool</code></font></td>
|
|
<td><b><a href="SocketServer.TCPServer-class.html#allow_reuse_address"><code>allow_reuse_address</code></a></b> = <span title="False"><code>False </code>
|
|
</span></td></tr>
|
|
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
|
|
<td><b><a href="SocketServer.TCPServer-class.html#request_queue_size"><code>request_queue_size</code></a></b> = <span title="5">5 </span></td></tr>
|
|
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
|
|
<td><b><a href="SocketServer.TCPServer-class.html#socket_type"><code>socket_type</code></a></b> = <span title="1">1 </span></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>server_address</span>,
|
|
<span class=sig-arg>RequestHandlerClass</span>)</span>
|
|
<br /><i>(Constructor)</i>
|
|
</h3>
|
|
Constructor. May be extended, do not override.
|
|
<dl><dt></dt><dd>
|
|
<dl><dt><b>Overrides:</b></dt>
|
|
<dd><a href="..\private\SocketServer.BaseServer-class.html#__init__"><code>SocketServer.BaseServer.__init__</code></a></dd>
|
|
</dl>
|
|
</dd></dl>
|
|
</td></tr></table>
|
|
|
|
<a name="close_request"></a>
|
|
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
|
|
<h3><span class="sig"><span class="sig-name">close_request</span>(<span class=sig-arg>self</span>,
|
|
<span class=sig-arg>request</span>)</span>
|
|
</h3>
|
|
Called to clean up an individual request.
|
|
<dl><dt></dt><dd>
|
|
<dl><dt><b>Overrides:</b></dt>
|
|
<dd><a href="..\private\SocketServer.BaseServer-class.html#close_request"><code>SocketServer.BaseServer.close_request</code></a></dd>
|
|
</dl>
|
|
</dd></dl>
|
|
</td></tr></table>
|
|
|
|
<a name="fileno"></a>
|
|
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
|
|
<h3><span class="sig"><span class="sig-name">fileno</span>(<span class=sig-arg>self</span>)</span>
|
|
</h3>
|
|
<p>Return socket file number.</p>
|
|
Interface required by select().
|
|
<dl><dt></dt><dd>
|
|
</dd></dl>
|
|
</td></tr></table>
|
|
|
|
<a name="get_request"></a>
|
|
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
|
|
<h3><span class="sig"><span class="sig-name">get_request</span>(<span class=sig-arg>self</span>)</span>
|
|
</h3>
|
|
<p>Get the request and client address from the socket.</p>
|
|
May be overridden.
|
|
<dl><dt></dt><dd>
|
|
</dd></dl>
|
|
</td></tr></table>
|
|
|
|
<a name="server_activate"></a>
|
|
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
|
|
<h3><span class="sig"><span class="sig-name">server_activate</span>(<span class=sig-arg>self</span>)</span>
|
|
</h3>
|
|
<p>Called by constructor to activate the server.</p>
|
|
May be overridden.
|
|
<dl><dt></dt><dd>
|
|
<dl><dt><b>Overrides:</b></dt>
|
|
<dd><a href="..\private\SocketServer.BaseServer-class.html#server_activate"><code>SocketServer.BaseServer.server_activate</code></a></dd>
|
|
</dl>
|
|
</dd></dl>
|
|
</td></tr></table>
|
|
|
|
<a name="server_bind"></a>
|
|
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
|
|
<h3><span class="sig"><span class="sig-name">server_bind</span>(<span class=sig-arg>self</span>)</span>
|
|
</h3>
|
|
<p>Called by constructor to bind the socket.</p>
|
|
May be overridden.
|
|
<dl><dt></dt><dd>
|
|
</dd></dl>
|
|
</td></tr></table>
|
|
|
|
<a name="server_close"></a>
|
|
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
|
|
<h3><span class="sig"><span class="sig-name">server_close</span>(<span class=sig-arg>self</span>)</span>
|
|
</h3>
|
|
<p>Called to clean-up the server.</p>
|
|
May be overridden.
|
|
<dl><dt></dt><dd>
|
|
<dl><dt><b>Overrides:</b></dt>
|
|
<dd><a href="..\private\SocketServer.BaseServer-class.html#server_close"><code>SocketServer.BaseServer.server_close</code></a></dd>
|
|
</dl>
|
|
</dd></dl>
|
|
</td></tr></table>
|
|
<br />
|
|
|
|
|
|
<!-- =========== START OF CLASS VARIABLE DETAILS =========== -->
|
|
<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
|
|
<tr bgcolor="#70b0f0" class="details">
|
|
<th colspan="2">Class Variable Details</th></tr>
|
|
</table>
|
|
<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
|
|
<a name="address_family"></a>
|
|
<h3>address_family</h3>
|
|
<dl>
|
|
<dt></dt>
|
|
<dd>
|
|
<dl>
|
|
<dt><b>Type:</b></dt>
|
|
<dd>
|
|
<code>int</code>
|
|
|
|
</dd>
|
|
<span title="2"> <dt><b>Value:</b></dt>
|
|
<dd><table><tr><td>
|
|
<pre class="variable">
|
|
2 </pre>
|
|
</td></tr></table></dd>
|
|
</span> </dl>
|
|
</dd>
|
|
</dl></td></tr></table>
|
|
<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
|
|
<a name="allow_reuse_address"></a>
|
|
<h3>allow_reuse_address</h3>
|
|
<dl>
|
|
<dt></dt>
|
|
<dd>
|
|
<dl>
|
|
<dt><b>Type:</b></dt>
|
|
<dd>
|
|
<code>bool</code>
|
|
|
|
</dd>
|
|
<span title="False"> <dt><b>Value:</b></dt>
|
|
<dd><table><tr><td>
|
|
<pre class="variable">
|
|
False </pre>
|
|
</td></tr></table></dd>
|
|
</span> </dl>
|
|
</dd>
|
|
</dl></td></tr></table>
|
|
<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
|
|
<a name="request_queue_size"></a>
|
|
<h3>request_queue_size</h3>
|
|
<dl>
|
|
<dt></dt>
|
|
<dd>
|
|
<dl>
|
|
<dt><b>Type:</b></dt>
|
|
<dd>
|
|
<code>int</code>
|
|
|
|
</dd>
|
|
<span title="5"> <dt><b>Value:</b></dt>
|
|
<dd><table><tr><td>
|
|
<pre class="variable">
|
|
5 </pre>
|
|
</td></tr></table></dd>
|
|
</span> </dl>
|
|
</dd>
|
|
</dl></td></tr></table>
|
|
<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
|
|
<a name="socket_type"></a>
|
|
<h3>socket_type</h3>
|
|
<dl>
|
|
<dt></dt>
|
|
<dd>
|
|
<dl>
|
|
<dt><b>Type:</b></dt>
|
|
<dd>
|
|
<code>int</code>
|
|
|
|
</dd>
|
|
<span title="1"> <dt><b>Value:</b></dt>
|
|
<dd><table><tr><td>
|
|
<pre class="variable">
|
|
1 </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>
|