Python example
Now, let us look at a specific Python example that implements a server that facilitates asynchronous communication. Download the code for this book from the GitHub page (https://github.com/PacktPublishing/Mastering-Concurrency-in-Python), and navigate to the Chapter18
folder.
Starting a server
In the Chapter18/example1.py
file, let's look at the EchoServerClientProtocol
class, as follows:
# Chapter18/example1.py import asyncio class EchoServerClientProtocol(asyncio.Protocol): def connection_made(self, transport): peername = transport.get_extra_info('peername') print('Connection from {}'.format(peername)) self.transport = transport def data_received(self, data): message = data.decode() print('Data received: {!r}'.format(message))
Here, our EchoServerClientProtocol
class is a subclass of asyncio.Protocol
. As we discussed earlier, inside of this class, we need to implement the connection_made(transport)
and data_received(data)
methods...