Skip to content
  • TCP Server(高层 streams)
python
# echo_server_streams.py
import asyncio

async def handle(reader: asyncio.StreamReader, writer: asyncio.StreamWriter):
    addr = writer.get_extra_info('peername')
    print("conn from", addr)
    while True:
        data = await reader.readline()
        if not data:
            break
        writer.write(b"echo: " + data)
        await writer.drain()
    writer.close()
    await writer.wait_closed()

async def main():
    server = await asyncio.start_server(handle, '127.0.0.1', 8888)
    addrs = ", ".join(str(sock.getsockname()) for sock in server.sockets)
    print("Serving on", addrs)
    async with server:
        await server.serve_forever()

# 运行: asyncio.run(main())
  • TCP Client(高层 streams)
python
import asyncio

async def client():
    reader, writer = await asyncio.open_connection('127.0.0.1', 8888)
    writer.write(b"hello\n")
    await writer.drain()
    data = await reader.readline()
    print("got:", data)
    writer.close()
    await writer.wait_closed()

asyncio.run(client())

欢迎来到 Laazua 的站点