zeromq中文教程

zeromq中文教程

ID:31613297

大小:1.05 MB

页数:56页

时间:2019-01-16

zeromq中文教程_第1页
zeromq中文教程_第2页
zeromq中文教程_第3页
zeromq中文教程_第4页
zeromq中文教程_第5页
资源描述:

《zeromq中文教程》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、zeromq中文教程简介:ØMQ(ZeroMQ,0MQ,zmq),这一堆表达方式看哪个顺眼就选哪个吧,都指的咱要讲的这玩意儿。它出现的目的只有一个:更高效的利用机器。好吧,这是我个人的看法,官方说法是:让任何地方、任何代码可以互联。应该很明白吧,如果非要做联想类比,好吧,可以想成经典的C/S模型,这个东东封装了所有底层细节,开发人员只要关注代码逻辑就可以了。(虽然联想成C/S,但可不仅仅如此哦,具体往下看)。它的通信协议是AMQP,具体的Google之吧,在自由市场里,它有一个对头RabbitMQ,关于那只"兔子",那又是另外一个故事了。C

2、/S模式:serverPython代码1.importzmq2.3.c=zmq.Context()4.s=c.socket(zmq.REP)5.#s.bind('tcp://127.0.0.1:10001')6.s.bind('ipc:///tmp/zmq')7.8.whileTrue:9.msg=s.recv_pyobj()10.s.send_pyobj(msg)11.s.close()clientPython代码1.importzmq2.3.c=zmq.Context()4.s=c.socket(zmq.REQ)5.#s.connect

3、('tcp://127.0.0.1:10001')6.s.connect('ipc:///tmp/zmq')7.s.send_pyobj('hello')8.msg=s.recv_pyobj()9.printmsg注意:这个经典的模式在zeroMQ中是应答状态的,不能同时send多个数据,只能ababab这样。还有这里send_pyobj是pyzmq特有的,用以传递python的对象,通用的还是如同socket的send~pub/sub模式:发布端(pub)Python代码1.importitertools2.importsys3.impo

4、rttime4.5.importzmq6.7.defmain():8.iflen(sys.argv)!=2:9.print'usage:publisher'10.sys.exit(1)11.12.bind_to=sys.argv[1]13.14.all_topics=['sports.general','sports.football','sports.basketball',15.'stocks.general','stocks.GOOG','stocks.AAPL',16.'weather']17.18.ctx=zmq

5、.Context()19.s=ctx.socket(zmq.PUB)20.s.bind(bind_to)21.22.print"Startingbroadcastontopics:"23.print"%s"%all_topics24.print"HitCtrl-Ctostopbroadcasting."25.print"Waitingsosubscribersocketscanconnect..."26.print27.time.sleep(1.0)28.29.msg_counter=itertools.count()30.try:31.f

6、ortopicinitertools.cycle(all_topics):32.msg_body=str(msg_counter.next())33.print'Topic:%s,msg:%s'%(topic,msg_body)34.#s.send_multipart([topic,msg_body])35.s.send_pyobj([topic,msg_body])36.#shortwaitsowedon'thogthecpu37.time.sleep(0.1)38.exceptKeyboardInterrupt:39.pass40.41

7、.print"Waitingformessagequeuestoflush..."42.time.sleep(0.5)43.s.close()44.print"Done."45.46.if__name__=="__main__":47.main()订阅端(sub):Python代码1.importsys2.importtime3.importzmq4.5.defmain():6.iflen(sys.argv)<2:7.print'usage:subscriber[topictopic...]'8.sys.exit(1

8、)9.10.connect_to=sys.argv[1]11.topics=sys.argv[2:]12.13.ctx=zmq.Context()14.s=ctx.socket(

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。