Python3 监听是一种实时读取外部事件并作出反应的方法。它的应用范围广泛,从基本的用户交互到高级的网络编程都需要使用监听技术。在 Python 中,我们可以使用以下两种主要的库来实现监听:
1. select 模块:是在 Unix-like 系统上通用的一种轻量级的异步 I/O 模型,通过使用 select() 和 poll() 系统调用来实现非阻塞 I/O。
2. asyncio 模块:是一个 Python 的标准库,提供了一种基于事件循环的异步 I/O 模型,使得高层次的代码拥有良好的可重用性和表现力。
在实际使用中,我们通常使用 select 模块来监听文件描述符,例如:
import select
import socket
# 创建一个服务器 socket
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind(('localhost', 8080))
server.listen(5)
# 监听服务端 socket
inputs = [server]
while True:
# 通过 select 监听文件描述符
readable, _, _ = select.select(inputs, [], [])
for sock in readable:
# 如果是服务端 socket,则代表有新的客户端连接请求
if sock == server:
client, addr = server.accept()
inputs.append(client)
# 如果是客户端 socket,则代表有客户端消息
else:
data = sock.recv(1024)
if not data:
inputs.remove(sock)
sock.close()
else:
print('Received:', data)
如上所示,我们首先创建一个服务器 socket,然后使用 select 监听该 socket,在可读事件发生时,我们根据事件类型做出相应的响应。
需要注意的是,在处理客户端消息时,我们应该使用 recv() 函数来接收消息,同时判断返回值是否为空,若为空则代表客户端已经关闭了连接。
总的来说,Python3 监听是一项非常重要的技术,它可以帮助我们实现实时响应外部事件的功能,是 Python 编程中必不可少的一部分。
上一篇 python3 画地图
下一篇 html新闻公告栏代码