2025年6月4日 星期三 乙巳(蛇)年 三月初八 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > Python

Python使用Manager对象实现不同机器上的进程跨网络传输数据

时间:09-09来源:作者:点击数:48

本文主要演示不同机器上的进程之间如何通过网络进行数据交换。

(1)首先编写程序文件multiprocessing_server.py,启动服务器进程,创建可共享的队列对象。

  • from multiprocessing.managers import BaseManager
  • from queue import Queue
  • q = Queue()
  • class QueueManager(BaseManager):
  • pass
  • QueueManager.register('get_queue', callable=lambda:q)
  • m = QueueManager(address=('', 30030), authkey=b'dongfuguo')
  • s = m.get_server()
  • s.serve_forever()

(2)然后编写程序文件multiprocessing_client1.py,连接服务器进程,并往共享的队列中存入一些数据。

  • from multiprocessing.managers import BaseManager
  • class QueueManager(BaseManager):
  • pass
  • QueueManager.register('get_queue')
  • #假设服务器的IP地址为10.2.1.2
  • m = QueueManager(address=('10.2.1.2', 30030), authkey=b'dongfuguo')
  • m.connect()
  • q = m.get_queue()
  • for i in range(3):
  • q.put(i)

(3)最后编写程序文件multiprocessing_client2.py,连接服务器进程,从共享的队列对象中读取数据并输出显示。

  • from multiprocessing.managers import BaseManager
  • class QueueManager(BaseManager):
  • pass
  • QueueManager.register('get_queue')
  • m = QueueManager(address=('10.2.1.2', 30030), authkey=b'dongfuguo')
  • m.connect()
  • q = m.get_queue()
  • for i in range(3):
  • print(q.get())

 

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门