Commit 1ee92832 authored by Robert Collins's avatar Robert Collins

Issue #23254: Document how to close the TCPServer listening socket.

Patch from Martin Panter.
parent 54d361fd
......@@ -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
overriding its :meth:`handle` method; this method will process incoming
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
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,
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.
.. method:: BaseServer.server_close()
Clean up the server. May be overridden.
.. versionadded:: 2.6
.. attribute:: BaseServer.address_family
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")
server.shutdown()
server.server_close()
The output of the example should look something like this::
......
......@@ -144,6 +144,7 @@ class SocketServerTest(unittest.TestCase):
server.shutdown()
t.join()
server.server_close()
self.assertEqual(-1, server.socket.fileno())
if verbose: print("done")
def stream_examine(self, proto, addr):
......
......@@ -66,6 +66,9 @@ Core and Builtins
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 #23441: rcompleter now prints a tab character instead of displaying
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment