mirror of
https://github.com/python/cpython.git
synced 2025-11-01 02:38:53 +00:00
asyncio doc: clarify how servers create protocol instances
This commit is contained in:
parent
c7edffdddd
commit
cfbea3a02e
1 changed files with 8 additions and 6 deletions
|
|
@ -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:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue