亚洲国产日韩人妖另类,久久只有这里有精品热久久,依依成人精品视频在线观看,免费国产午夜视频在线

      
      

        python的zmq模塊

        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″””

        鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場,版權(quán)歸原作者所有,如有侵權(quán)請聯(lián)系管理員(admin#wlmqw.com)刪除。
        上一篇 2022年6月16日 18:18
        下一篇 2022年6月16日 21:11

        相關(guān)推薦

        聯(lián)系我們

        聯(lián)系郵箱:admin#wlmqw.com
        工作時間:周一至周五,10:30-18:30,節(jié)假日休息