介绍
这篇文章将为大家详细讲解有关使用python3如何实现ZeroMQ的三种模式,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
python是什么意思
python是一种跨平台的,具有解释性,编译性,互动性和面向对象的脚本语言,其最初的设计是用于编写自动化脚本,随着版本的不断更新和新功能的添加,常用于用于开发独立的项目和大型项目。
ZeroMQ是一个消息队列网络库,实现网络常用技术封装。在C/S中实现了三种模式,这段时间用python简单实现了一下,感觉python虽然灵活。但是数据处理不如c++自由灵活。
<强>请求-应答模式:强>
客户端在请求后,服务端必须回响应
<强>服务器:强>
#, - *编码:utf-8 - * - import zmq 时间=context zmq.Context () 时间=socket context.socket (zmq.REP) socket.bind (“tcp://*: 5555“) while 真正的:=,,message  socket.recv () ,print (消息) ,socket.send (“server 响应!“.encode (& # 39; utf - 8 # 39;))
<强>客户端:强>
#, - *编码:utf-8 - * - import zmq import 系统 时间=context zmq.Context () 时间=socket context.socket (zmq.REQ) socket.connect (“tcp://localhost: 5555“) 而(真正的):=,data 输入(“input  your 数据:“)==,if data & # 39;提问# 39;: sys.exit才能() ,打印(数据) ,socket.send (data.encode (& # 39; utf - 8 # 39;))=,,response  socket.recv (); 之前,print (响应)><强>发布-订阅模式:强>
广播所有客户,没有队列缓存,断开连接数据将永远丢失.client可以进行数据过滤。
<强>服务器:强>
#, - *编码:utf-8 - * - import zmq 时间=context zmq.Context (), 时间=socket context.socket (zmq.PUB), socket.bind (“tcp://127.0.0.1:5000"), while 真正的:,=,data 输入(& # 39;input  your 数据:& # 39;) ,socket.send (data.encode (& # 39; utf - 8 # 39;))<强>客户端:强>
#, - *编码:utf-8 - * - import 时间 import zmq 时间=context zmq.Context (), 时间=socket context.socket (zmq.SUB), socket.connect (“tcp://127.0.0.1:5000"), socket.setsockopt (zmq.SUBSCRIBE, & # 39; & # 39; .encode (& # 39; utf - 8 # 39;)), while 真正的:, ,print (socket.recv ())<强>平行管道模式:强>
由三部分组成,推进行数据推送,工作进行数据缓存,拉进行数据竞争获取处理。区别于发布-订阅存在一个数据缓存和处理负载。
当连接被断开,数据不会丢失,重连后数据继续发送到对端
<强>服务器:强>
#, - *编码:utf-8 - * - import zmq 时间=context zmq.Context () 时间=recive context.socket (zmq.PULL) recive.connect (& # 39; tcp://127.0.0.1:5558& # 39;) while 真正的:=,,data  recive.recv () ,打印(数据)<强>工作:强>
#, - *编码:utf-8 - * - import zmq 时间=context zmq.Context () 时间=recive context.socket (zmq.PULL) recive.connect (& # 39; tcp://127.0.0.1:5557& # 39;) 时间=sender context.socket (zmq.PUSH) sender.connect (& # 39; tcp://127.0.0.1:5558& # 39;) while 真正的:=,,data  recive.recv () ,打印(数据) 之前,sender.send(数据)><强>客户端:强>
#, - *编码:utf-8 - * - import zmq import 时间 时间=context zmq.Context () 时间=socket context.socket (zmq.PUSH) socket.bind (& # 39; tcp://*: 5557 & # 39;) while 真正的:=,data 输入(& # 39;input  your 数据:& # 39;) ,打印(数据) ,socket.send (data.encode (& # 39; utf - 8 # 39;))使用python3如何实现ZeroMQ的三种模式