Python中的multiprocessing.connection模块简介及示例代码
发布时间:2024-01-06 20:00:51
Python的multiprocessing.connection模块提供了一个用于多进程之间进行通信的套接字连接。
这个模块提供了两个类,分别是Listener和Client。Listener类用于创建一个监听器,可以接收来自其他进程的连接请求,而Client类用于创建一个客户端,可以连接到其他进程创建的监听器。
下面是一个使用multiprocessing.connection模块的示例代码:
# 在服务器端创建一个监听器
from multiprocessing import connection
address = ('localhost', 6000) # 监听器的地址
listener = connection.Listener(address)
# 在客户端连接到监听器
from multiprocessing import connection
address = ('localhost', 6000) # 监听器的地址
client = connection.Client(address)
# 在服务器端接受客户端连接并进行通信
from multiprocessing import connection
address = ('localhost', 6000) # 监听器的地址
listener = connection.Listener(address)
while True:
# 接受来自客户端的连接
with listener.accept() as conn:
print('Got connection from', listener.last_accepted)
# 与客户端进行通信
while True:
msg = conn.recv() # 接收客户端发送的消息
if msg == 'close':
conn.close() # 关闭连接
break
print('Received message:', msg)
# 处理接收到的消息
# ......
conn.send('Response') # 发送响应给客户端
# 客户端连接到服务器并进行通信
from multiprocessing import connection
address = ('localhost', 6000) # 监听器的地址
client = connection.Client(address)
while True:
msg = input('Enter message: ') # 输入发送的消息
client.send(msg) # 发送消息给服务器
if msg == 'close':
client.close() # 关闭连接
break
response = client.recv() # 接收服务器的响应
print('Received response:', response)
这里展示了一个简单的服务器-客户端通信的示例。在服务器端,我们首先创建了一个监听器,然后等待客户端连接。当接收到客户端的连接后,我们进入一个循环,接收客户端发送的消息并给予响应。当接收到消息为'close'时,我们关闭连接并退出循环。在客户端,我们首先创建一个客户端对象并连接到服务器端的监听器。然后进入一个循环,输入要发送的消息并通过客户端对象发送给服务器。当输入为'close'时,我们关闭连接并退出循环。
使用multiprocessing.connection模块可以方便地在Python多进程之间进行通信,可以用于实现各种进程间的任务分发、数据共享等功能。
