Commit ff6fc56f authored by Victor Stinner's avatar Victor Stinner

asyncio doc: clarify how servers create protocol instances

parent ec1d2431
...@@ -446,7 +446,7 @@ TCP echo client example, send data and wait until the connection is closed:: ...@@ -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:: ...@@ -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:: ...@@ -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:: ...@@ -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:: ...@@ -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:: ...@@ -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:
......
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