asyncio doc: clarify how servers create protocol instances

This commit is contained in:
Victor Stinner 2014-10-12 11:30:17 +02:00
parent c7edffdddd
commit cfbea3a02e

View file

@ -446,7 +446,7 @@ TCP echo client example, send data and wait until the connection is closed::
import asyncio import asyncio
class EchoClient(asyncio.Protocol): class EchoClientProtocol(asyncio.Protocol):
message = 'This is the message. It will be echoed.' message = 'This is the message. It will be echoed.'
def connection_made(self, transport): def connection_made(self, transport):
@ -461,7 +461,7 @@ TCP echo client example, send data and wait until the connection is closed::
asyncio.get_event_loop().stop() asyncio.get_event_loop().stop()
loop = asyncio.get_event_loop() 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_until_complete(coro)
loop.run_forever() loop.run_forever()
loop.close() loop.close()
@ -481,7 +481,7 @@ TCP echo server example, send back received data and close the connection::
import asyncio import asyncio
class EchoServer(asyncio.Protocol): class EchoServerClientProtocol(asyncio.Protocol):
def connection_made(self, transport): def connection_made(self, transport):
peername = transport.get_extra_info('peername') peername = transport.get_extra_info('peername')
print('Connection from {}'.format(peername)) print('Connection from {}'.format(peername))
@ -498,7 +498,8 @@ TCP echo server example, send back received data and close the connection::
self.transport.close() self.transport.close()
loop = asyncio.get_event_loop() 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 = loop.run_until_complete(coro)
# Server requests until CTRL+c is pressed # Server requests until CTRL+c is pressed
@ -575,7 +576,7 @@ method, send back received data::
import asyncio import asyncio
class EchoServerClientProtocol: class EchoServerProtocol:
def connection_made(self, transport): def connection_made(self, transport):
self.transport = transport self.transport = transport
@ -587,8 +588,9 @@ method, send back received data::
loop = asyncio.get_event_loop() loop = asyncio.get_event_loop()
print("Starting UDP server") print("Starting UDP server")
# One protocol instance will be created to serve all client requests
listen = loop.create_datagram_endpoint( 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) transport, protocol = loop.run_until_complete(listen)
try: try: