简介

在 Python 中,asyncio 是实现异步 I/O 的核心库,特别适合处理高并发的网络请求。通过协程(coroutine)和事件循环(event loop),我们可以更高效地管理网络资源。以下是使用 asyncio 实现简单 TCP 通信的示例:

import asyncio

async def handle_connection(reader, writer):
    data = await reader.read(100)
    message = data.decode()
    addr = writer.get_extra_info('peername')
    print(f"接收到消息: {message} 从 {addr}")
    
    # 回应客户端
    writer.write(b"Hello from server!")
    await writer.drain()
    writer.close()

async def main():
    server = await asyncio.start_server(handle_connection, '127.0.0.1', 8888)
    async with server:
        await server.serve_forever()

asyncio.run(main())

关键点

  • 🔄 异步非阻塞:通过 await 关键字实现非阻塞操作,避免线程阻塞
  • 📡 网络通信:使用 asyncio.StreamReaderasyncio.StreamWriter 处理 TCP 数据流
  • 🧠 事件循环asyncio.run() 启动事件循环,管理异步任务
  • 📁 并发处理:单线程可同时处理多个客户端连接

扩展阅读

想要深入了解异步网络编程的高级用法?可以参考我们的asyncio 高级教程。那里有更多关于 TCP/UDP 协议、SSL 加密和异步数据库连接的内容。

asyncio_networking_flow