mirror of https://github.com/python/cpython.git
Issue #23254: Document how to close the TCPServer listening socket.
Patch from Martin Panter.
This commit is contained in:
commit
f7e3b5e153
|
@ -33,9 +33,10 @@ Creating a server requires several steps. First, you must create a request
|
||||||
handler class by subclassing the :class:`BaseRequestHandler` class and
|
handler class by subclassing the :class:`BaseRequestHandler` class and
|
||||||
overriding its :meth:`handle` method; this method will process incoming
|
overriding its :meth:`handle` method; this method will process incoming
|
||||||
requests. Second, you must instantiate one of the server classes, passing it
|
requests. Second, you must instantiate one of the server classes, passing it
|
||||||
the server's address and the request handler class. Finally, call the
|
the server's address and the request handler class. Then call the
|
||||||
:meth:`handle_request` or :meth:`serve_forever` method of the server object to
|
:meth:`handle_request` or :meth:`serve_forever` method of the server object to
|
||||||
process one or many requests.
|
process one or many requests. Finally, call :meth:`~BaseServer.server_close`
|
||||||
|
to close the socket.
|
||||||
|
|
||||||
When inheriting from :class:`ThreadingMixIn` for threaded connection behavior,
|
When inheriting from :class:`ThreadingMixIn` for threaded connection behavior,
|
||||||
you should explicitly declare how you want your threads to behave on an abrupt
|
you should explicitly declare how you want your threads to behave on an abrupt
|
||||||
|
@ -177,6 +178,13 @@ Server Objects
|
||||||
Tell the :meth:`serve_forever` loop to stop and wait until it does.
|
Tell the :meth:`serve_forever` loop to stop and wait until it does.
|
||||||
|
|
||||||
|
|
||||||
|
.. method:: BaseServer.server_close()
|
||||||
|
|
||||||
|
Clean up the server. May be overridden.
|
||||||
|
|
||||||
|
.. versionadded:: 2.6
|
||||||
|
|
||||||
|
|
||||||
.. attribute:: BaseServer.address_family
|
.. attribute:: BaseServer.address_family
|
||||||
|
|
||||||
The family of protocols to which the server's socket belongs.
|
The family of protocols to which the server's socket belongs.
|
||||||
|
@ -547,6 +555,7 @@ An example for the :class:`ThreadingMixIn` class::
|
||||||
client(ip, port, "Hello World 3")
|
client(ip, port, "Hello World 3")
|
||||||
|
|
||||||
server.shutdown()
|
server.shutdown()
|
||||||
|
server.server_close()
|
||||||
|
|
||||||
|
|
||||||
The output of the example should look something like this::
|
The output of the example should look something like this::
|
||||||
|
|
|
@ -144,6 +144,7 @@ def run_server(self, svrcls, hdlrbase, testfunc):
|
||||||
server.shutdown()
|
server.shutdown()
|
||||||
t.join()
|
t.join()
|
||||||
server.server_close()
|
server.server_close()
|
||||||
|
self.assertEqual(-1, server.socket.fileno())
|
||||||
if verbose: print("done")
|
if verbose: print("done")
|
||||||
|
|
||||||
def stream_examine(self, proto, addr):
|
def stream_examine(self, proto, addr):
|
||||||
|
|
|
@ -13,6 +13,9 @@ Core and Builtins
|
||||||
Library
|
Library
|
||||||
-------
|
-------
|
||||||
|
|
||||||
|
- Issue #23254: Document how to close the TCPServer listening socket.
|
||||||
|
Patch from Martin Panter.
|
||||||
|
|
||||||
- Issue #19450: Update Windows builds to use SQLite 3.8.11.0
|
- Issue #19450: Update Windows builds to use SQLite 3.8.11.0
|
||||||
|
|
||||||
- Issue #17527: Add PATCH to wsgiref.validator. Patch from Luca Sbardella.
|
- Issue #17527: Add PATCH to wsgiref.validator. Patch from Luca Sbardella.
|
||||||
|
|
Loading…
Reference in New Issue