How it works...

The server part is composed of three different classes.

EchoServer, which orchestrates the server and provides the high-level API we can use. EchoRequestHandler, which manages the incoming messages and serves them. And ThreadedTCPServer, which is in charge of the whole networking part, opening sockets, listening on them, and spawning threads to handle connections.

EchoServer allows to start and stop our server:

class EchoServer: def __init__(self, host='0.0.0.0', port=9800): self._host = host self._port = port self._server = ThreadedTCPServer((host, port), EchoRequestHandler) self._thread = threading.Thread(target=self._server.serve_forever) self._thread.daemon = True def start(self): if self._thread.is_alive(): # Already ...

Get Modern Python Standard Library Cookbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.