欢迎访问宙启技术站
智能推送

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多进程之间进行通信,可以用于实现各种进程间的任务分发、数据共享等功能。