Feb-27-2019, 05:24 AM
Hi guys, first time posting on the Python forums
I am wondering how do asynchronous socket servers go about maintaining so many clients, specifically, how can the server have more than one client in a connected TCP stream if it is on a single port, or is there some automagical stuff happening to assign different ports behind the scenes?
for example in the doceumentation at
https://docs.python.org/3.7/library/asyn...-based-api
the server is serving on port 8888, however this expects multiple clients to have connections.
Thanks
I am wondering how do asynchronous socket servers go about maintaining so many clients, specifically, how can the server have more than one client in a connected TCP stream if it is on a single port, or is there some automagical stuff happening to assign different ports behind the scenes?
for example in the doceumentation at
https://docs.python.org/3.7/library/asyn...-based-api
the server is serving on port 8888, however this expects multiple clients to have connections.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
import asyncio async def handle_echo(reader, writer): data = await reader.read( 100 ) message = data.decode() addr = writer.get_extra_info( 'peername' ) print ( f "Received {message!r} from {addr!r}" ) print ( f "Send: {message!r}" ) writer.write(data) await writer.drain() print ( "Close the connection" ) writer.close() async def main(): server = await asyncio.start_server( handle_echo, '127.0.0.1' , 8888 ) addr = server.sockets[ 0 ].getsockname() print ( f 'Serving on {addr}' ) async with server: await server.serve_forever() asyncio.run(main()) |