简介
在 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.StreamReader
和asyncio.StreamWriter
处理 TCP 数据流 - 🧠 事件循环:
asyncio.run()
启动事件循环,管理异步任务 - 📁 并发处理:单线程可同时处理多个客户端连接
扩展阅读
想要深入了解异步网络编程的高级用法?可以参考我们的asyncio 高级教程。那里有更多关于 TCP/UDP 协议、SSL 加密和异步数据库连接的内容。