python 进程通信Listener
时间: 2023-12-24 13:57:26 浏览: 32
你可以使用 `multiprocessing` 模块中的 `Listener` 来实现 Python 进程之间的通信。下面是一个简单的示例代码:
```python
from multiprocessing import Process, Listener
def child_process(conn):
# 子进程的逻辑
print("子进程开始运行")
# 向父进程发送消息
conn.send("Hello from child process!")
# 接收父进程的消息
message = conn.recv()
print(f"子进程收到消息: {message}")
# 关闭连接
conn.close()
if __name__ == '__main__':
# 创建 Listener 对象,指定绑定的地址和端口
listener = Listener(address=('localhost', 12345))
# 启动子进程,并传递连接对象
process = Process(target=child_process, args=(listener.accept(),))
process.start()
# 等待子进程结束
process.join()
# 关闭 Listener
listener.close()
```
在上述代码中,父进程通过创建一个 `Listener` 对象来监听指定地址和端口。然后,它启动一个子进程,并通过 `listener.accept()` 方法接受来自子进程的连接请求。子进程在与父进程建立连接后,可以通过 `conn.send()` 方法向父进程发送消息,通过 `conn.recv()` 方法接收父进程发送的消息。最后,父进程关闭连接并终止子进程。
请注意,上述示例只是一个简单的演示,实际中你可以根据需求进行更复杂的进程通信操作。