import asyncio
- class EchoClient(asyncio.Protocol):
+ class EchoClientProtocol(asyncio.Protocol):
message = 'This is the message. It will be echoed.'
def connection_made(self, transport):
asyncio.get_event_loop().stop()
loop = asyncio.get_event_loop()
- coro = loop.create_connection(EchoClient, '127.0.0.1', 8888)
+ coro = loop.create_connection(EchoClientProtocol, '127.0.0.1', 8888)
loop.run_until_complete(coro)
loop.run_forever()
loop.close()
import asyncio
- class EchoServer(asyncio.Protocol):
+ class EchoServerClientProtocol(asyncio.Protocol):
def connection_made(self, transport):
peername = transport.get_extra_info('peername')
print('Connection from {}'.format(peername))
self.transport.close()
loop = asyncio.get_event_loop()
- coro = loop.create_server(EchoServer, '127.0.0.1', 8888)
+ # Each client connection will create a new protocol instance
+ coro = loop.create_server(EchoServerClientProtocol, '127.0.0.1', 8888)
server = loop.run_until_complete(coro)
# Server requests until CTRL+c is pressed
import asyncio
- class EchoServerClientProtocol:
+ class EchoServerProtocol:
def connection_made(self, transport):
self.transport = transport
loop = asyncio.get_event_loop()
print("Starting UDP server")
+ # One protocol instance will be created to serve all client requests
listen = loop.create_datagram_endpoint(
- EchoServerClientProtocol, local_addr=('127.0.0.1', 9999))
+ EchoServerProtocol, local_addr=('127.0.0.1', 9999))
transport, protocol = loop.run_until_complete(listen)
try: