1、zmq介紹:創(chuàng)建和銷毀套接字:zmq.socket(), zmq.close()配置和讀取套接字:zmq.setsockopt(), zmq.getsockopt()為套接字建立連接:zmq.bind(), zmq.connect()發(fā)送和接收消息: zmq.send(), zmq.recv()注:使用zmq.bind()連接的節(jié)點稱之為服務(wù)端,它有著一個較為固定的網(wǎng)絡(luò)地址;使用zmq.connect()連接的節(jié)點稱為客戶端,其地址不固定。2、zmq消息模式:主要有三種常用模式: req/rep(請求答復(fù)模式):主要用于遠程調(diào)用及任務(wù)分配等。 pub/sub(訂閱模式): 主要用于數(shù)據(jù)分發(fā)。 push/pull(管道模式): 主要用于多任務(wù)并行。3、zmq內(nèi)置的有效綁定對:PUB and SUBREQ and REPREQ and XREPXREQ and REPXREQ and XREPXREQ and XREQXREP and XREPPUSH and PULLPAIR and PAIR4、具體消息模式舉例(1)、req/rep(請求/答復(fù)模式):一對一模式,一問一答#server服務(wù)端import zmqcontext=zmq.Context()socket=context.socket(zmq.REP) #設(shè)置socket的類型,zmq.REP答復(fù)socket.bind(“tcp://*:15000”) #綁定服務(wù)端的IP和端口while True: #循環(huán)接收客戶端發(fā)來的消息 message=socket.recv() #接收客戶端發(fā)送來的消息,注:是byte類型 print(message) socket.send_string(“copy!”) #再發(fā)回客戶端消息結(jié)果:客戶單沒請求一次就打印一次消息體b’request’b’request’b’request’b’request’#client客戶端import zmq, syscontext = zmq.Context()socket=context.socket(zmq.REQ) #設(shè)置socket類型,請求端socket.connect(“tcp://localhost:15000”) #連接服務(wù)端的IP和端口while True: data=input(“input your request:”) if data == “q”: sys.exit() socket.send_string(data) #向服務(wù)端發(fā)送消息 message=socket.recv() #接收服務(wù)端返回的消息,注:是byte類型 print(message)”””結(jié)果:沒輸入請求一次,就得到服務(wù)端的一次返回input your data:123b’copy!’input your data:456b’copy!'”””(2)、pub/sub(訂閱模式):一對多模式一個發(fā)布者,多個訂閱者,訂閱者可以通過設(shè)置過濾器過濾數(shù)據(jù)。#publisher發(fā)布者import zmqcontext=zmq.Context()socket=context.socket(zmq.PUB)socket.bind(“tcp://*:15000”)while True: data = input(“input your data:”) print(data) socket.send_string(data)”””結(jié)果:循環(huán)提示輸入數(shù)據(jù),當輸入一次,就發(fā)送一次到訂閱者input your data:123123input your data:456456input your data:789789input your data:”””#Subscriber訂閱者import sysimport zmqcontext=zmq.Context()socket=context.socket(zmq.SUB)socket.connect(“tcp://localhost:15000″)socket.setsockopt_string(zmq.SUBSCRIBE,”)或者:socket.setsockopt_string(zmq.SUBSCRIBE,’123′) #表示只過濾出收到消息為’123’的消息或者:socket.subscribe(‘topic’) #訂閱一個主題while True: message=socket.recv() print(message)”””結(jié)果:發(fā)布者每發(fā)布一次,都能訂閱到b’123’b’456’b’789′”””(3)、push/pull(管道模式):管道是單向的,從PUSH端單向的向PULL端單向的推送數(shù)據(jù)流。由三部分組成,push進行數(shù)據(jù)推送,work進行數(shù)據(jù)緩存,pull進行數(shù)據(jù)競爭獲取處理。區(qū)別于Publish-Subscribe存在一個數(shù)據(jù)緩存和處理負載。當連接被斷開,數(shù)據(jù)不會丟失,重連后數(shù)據(jù)繼續(xù)發(fā)送到對端。#推送端import zmqcontext=zmq.Context()socket=context.socket(zmq.PUSH) #設(shè)置socket類型PUSH推送socket.bind(“tcp://*:5557”) #綁定IP和端口while True: data=input(“input your data:”) socket.send_string(data)”””input your data:123input your data:456input your data:789″””#worker端import zmqcontext=zmq.Context()socket_receive=context.socket(zmq.PULL) #設(shè)置socket類型PULL拉取推送端的消息socket_receive.connect(“tcp://localhost:5557”) #連接推送端IP和端口socket_sender=context.socket(zmq.PUSH) #再設(shè)置一個socket類型PUSH推送socket_sender.connect(“tcp://localhost:5558”) #連接IP和端口向其推送消息while True: data=socket_receive.recv_string() #拉取接收消息 print(data) socket_sender.send_string(data) #再將消息推送出去”””123456789″””#拉取端import zmqcontext=zmq.Context()socket=context.socket(zmq.PULL) #設(shè)置socket類型PULL拉取消息socket.bind(“tcp://*:5558″) #綁定IP和端口去拉取消息while True: message=socket.recv_string() print(message)”””123456789″””
python的zmq模塊
相關(guān)推薦
四季沐歌榮膺「金致獎2024年度家居消費者信賴安心交付品牌」
守正創(chuàng)新是家居行業(yè)的靈魂,也是推動行業(yè)高質(zhì)量發(fā)展的不竭動力。2024年,中國家居產(chǎn)業(yè)發(fā)展經(jīng)歷了深刻變革,眾多杰出品牌和行業(yè)精英堅定不移地邁向高質(zhì)量發(fā)展之路,在面對產(chǎn)業(yè)變革與不確定的…
歡樂冰雪 共創(chuàng)未來——第十一屆全國大眾冰雪季啟動暨四季沐歌空氣能松花江冰雪嘉年華溫暖驛站正式開館
1月7日上午,第十一屆全國大眾冰雪季啟動儀式暨四季沐歌空氣能松花江冰雪嘉年華溫暖驛站開館儀式在哈爾濱松花江冰雪嘉年華隆重舉行。哈爾濱文化旅游規(guī)劃設(shè)計院有限公司董事長黃訓(xùn)軍、市場部部…
空氣能十大品牌四季沐歌空氣能備受贊賞,推動集中供暖舒適化變革
在山東省濰坊市泰和華府小區(qū),身為空氣能十大品牌的四季沐歌空氣能熱泵以其高效、環(huán)保、節(jié)能的特點和舒適溫暖效果,受到了小區(qū)業(yè)主們的喜愛與好評。這不僅是對整個小區(qū)業(yè)主冬季采暖需求的滿足,…
他們的愛情故事 | 遇見她就是愛情最好的模樣!
“沒想到竟然真的能去參加哈爾濱冰雪集體婚禮,本來是抱著試試看的態(tài)度報名,想要給我們的愛情一份浪漫儀式感,因為她一直很向往哈爾濱的冰雪?!笨吹剿募俱甯杩諝饽芄镜墓枮I公益冰雪集體婚…
【用戶告白】第二十八期|四季沐歌空氣能收獲感謝信!為道孚縣各級師生送去溫暖與舒適
在青藏高原東南緣的鮮水河斷裂帶,有一個被群山環(huán)抱的縣城——甘孜藏族自治州道孚縣。這里地形復(fù)雜,最高海拔達5820米,平均海拔為3245米,氣候以寒冷干燥、冬長夏短著稱。在這片高寒之…
勇闖極境 | 四季沐歌空氣能登上世界屋脊,征服西藏高寒
勇征極寒,強勁供暖。12月,四季沐歌空氣能極境之旅走進神秘的“第三極”——西藏。巍峨的雪山、蔚藍的天空、鏡面般的圣湖、陡峭的懸崖、無盡的戈壁和沙漠,看過央視經(jīng)典紀錄片《第三極》的觀…
來自空氣能十大品牌四季沐歌的最新杰作,“真省”系列新品采暖熱水一體機驚艷亮相哈爾濱
12月16日,四季沐歌空氣能索菲亞教堂游客溫暖驛站·零碳小屋正式開館,尤為閃耀“爾濱”的是重磅發(fā)布的四季沐歌空氣能“真省”系列采暖熱水一體機新品,可以滿足用戶不同場景下的采暖熱水需…
1.88萬平方公里、近5萬戶家庭,四季沐歌空氣能和工程服務(wù)團隊守護居民溫暖過冬
蒼茫遼闊的內(nèi)蒙古自治區(qū),平均風力達6級以上的大風呼嘯著,帶來陣陣寒意,冰雪中的極寒天氣凍得行人“瑟瑟發(fā)抖”。然而走進內(nèi)蒙古呼和浩特中燃煤改電項目覆蓋的居民家庭,屋子里是四季沐歌空氣…
哈爾濱第四十一屆“四季沐歌”公益冰雪集體婚禮冠名簽約暨征集啟動儀式隆重舉行
11月20日,哈爾濱第四十一屆“四季沐歌”公益冰雪集體婚禮冠名簽約暨新人征集啟動儀式在哈爾濱隆重舉行。本次活動由中共哈爾濱市委宣傳部、共青團哈爾濱市委員會、哈爾濱市文化廣電和旅游局…
【暖冬大巡動】第二期|從白天到黑夜,四季沐歌空氣能全國冬檢服務(wù)不停歇
11月的新疆,隨著強冷空氣入侵,天空飄落雪花,冷風直吹、寒意逼人,氣溫早已跌至零下,新疆各地氣象部門已接連發(fā)布寒潮、暴雪、大風、大霧、道路結(jié)冰等預(yù)警信號。 在如此寒冷、交通又不便的…