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.
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.
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())Thanks