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ù)模式):主要用于遠(yuǎn)程調(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ù),當(dāng)輸入一次,就發(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進(jìn)行數(shù)據(jù)推送,work進(jìn)行數(shù)據(jù)緩存,pull進(jìn)行數(shù)據(jù)競爭獲取處理。區(qū)別于Publish-Subscribe存在一個數(shù)據(jù)緩存和處理負(fù)載。當(dāng)連接被斷開,數(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)推薦
冰雪狂歡進(jìn)行時,四季沐歌空氣能冰雪挑戰(zhàn)賽邀你#雪戰(zhàn)到底一起熱力曬
在銀裝素裹的哈爾濱亞布力滑雪場,皚皚白雪覆蓋著連綿山巒,宛如一幅天然的冰雪畫卷。這里,不僅是滑雪愛好者的天堂,更是一場集冰雪體育競技、娛樂體驗與綠色科技展示于一體的冰雪盛會,也是四…
在零下30℃的極寒哈爾濱,空氣能十大品牌四季沐歌燃起全民冰雪熱情
在銀裝素裹的北國冰城哈爾濱,奇幻的冰雪盛宴和盛大的冰雪賽事吸引了整個亞洲的目光。而在這片冰雪世界中,一場別開生面的四季沐歌空氣能全民冰雪挑戰(zhàn)賽正在點燃人們的熱情。這不僅是一場吸引了…
#雪戰(zhàn)到底一起熱力曬,四季沐歌空氣能抖音冰雪挑戰(zhàn)賽燃起全民冰雪熱情
從冰雪季開場的“爾濱之約”到哈爾濱冰雪大世界開園、第41屆中國·哈爾濱國際冰雪節(jié)盛大開幕、哈爾濱第41屆“四季沐歌”公益冰雪集體婚禮,再到熱度爆棚的春節(jié)假期冰雪旅游以及第九屆亞洲冬…
空氣能十大品牌四季沐歌助力鄂爾多斯東城區(qū)開啟清潔取暖新時代
在綠色低碳、環(huán)保意識日益增強(qiáng)的今天,清潔取暖成為了各地改善民生、守護(hù)藍(lán)天的重要舉措。在這場清潔取暖變革中,鄂爾多斯東勝區(qū)邁出了堅實有力的步伐。 鄂爾多斯位于內(nèi)蒙古自治區(qū)西南部,冬季…
第二批捐贈物資已發(fā)車!四季沐歌助力西藏日喀則災(zāi)區(qū)群眾溫暖過冬
在第一批愛心物資于1月8日送達(dá)后,四季沐歌集團(tuán)捐贈的第二批愛心物資也于1月17日順利發(fā)車,1000臺采暖設(shè)備及物資馳援西藏日喀則地震災(zāi)區(qū)。 近日,西藏自治區(qū)日喀則市突發(fā)6.8級地震…
四季沐歌榮膺「金致獎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ù)雜,最高海拔達(dá)5820米,平均海拔為3245米,氣候以寒冷干燥、冬長夏短著稱。在這片高寒之…