最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

關(guān)于ZeroMQ 三種模式python3實現(xiàn)方式

 更新時間:2019年12月23日 14:45:47   作者:gmHappy  
今天小編就為大家分享一篇關(guān)于ZeroMQ 三種模式python3實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

ZeroMQ是一個消息隊列網(wǎng)絡(luò)庫,實現(xiàn)網(wǎng)絡(luò)常用技術(shù)封裝。在C/S中實現(xiàn)了三種模式,這段時間用python簡單實現(xiàn)了一下,感覺python雖然靈活。但是數(shù)據(jù)處理不如C++自由靈活。

Request-Reply模式:

客戶端在請求后,服務(wù)端必須回響應(yīng)

server:

# -*-coding:utf-8 -*-

import zmq 

context = zmq.Context()
socket = context.socket(zmq.REP)
socket.bind("tcp://*:5555")

while True:
 message = socket.recv()
 print (message)
 socket.send("server response!".encode('utf-8'))

clinet:

# -*-coding:utf-8 -*-

import zmq
import sys

context = zmq.Context()
socket = context.socket(zmq.REQ)
socket.connect("tcp://localhost:5555")

while(True):
 data = input("input your data:")
 if data == 'q':
  sys.exit()

 print(data)
 socket.send(data.encode('utf-8'))

 response = socket.recv();
 print (response) 

Publish-Subscribe模式:

廣播所有client,沒有隊列緩存,斷開連接數(shù)據(jù)將永遠(yuǎn)丟失。client可以進(jìn)行數(shù)據(jù)過濾。

server:

# -*-coding:utf-8 -*-

import zmq 
context = zmq.Context() 
socket = context.socket(zmq.PUB) 
socket.bind("tcp://127.0.0.1:5000") 
while True: 
 data = input('input your data:')
 socket.send(data.encode('utf-8'))

clinet:

# -*-coding:utf-8 -*-

import time
import zmq 
context = zmq.Context() 
socket = context.socket(zmq.SUB) 
socket.connect("tcp://127.0.0.1:5000") 
socket.setsockopt(zmq.SUBSCRIBE, ''.encode('utf-8')) 
while True: 
 print(socket.recv()) 

Parallel Pipeline模式:

由三部分組成,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ā)送到對端

server:

# -*-coding:utf-8 -*-

import zmq

context = zmq.Context()

recive = context.socket(zmq.PULL)
recive.connect('tcp://127.0.0.1:5558')


while True:
 data = recive.recv()
 print(data)

work:

# -*-coding:utf-8 -*-

import zmq

context = zmq.Context()

recive = context.socket(zmq.PULL)
recive.connect('tcp://127.0.0.1:5557')

sender = context.socket(zmq.PUSH)
sender.connect('tcp://127.0.0.1:5558')

while True:
 data = recive.recv()
 print(data)
 sender.send(data)

clinet:

# -*-coding:utf-8 -*-
import zmq
import time

context = zmq.Context()
socket = context.socket(zmq.PUSH)

socket.bind('tcp://*:5557')

while True:
 data = input('input your data:')
 print(data)
 socket.send(data.encode('utf-8'))

以上這篇關(guān)于ZeroMQ 三種模式python3實現(xiàn)方式就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

当阳市| 子洲县| 巩留县| 手游| 桑日县| 集贤县| 阿合奇县| 土默特右旗| 贵南县| 海口市| 林西县| 宁津县| 鸡泽县| 巩义市| 离岛区| 肥城市| 轮台县| 金溪县| 洛川县| 垣曲县| 汤阴县| 松潘县| 扶风县| 康保县| 介休市| 宣武区| 万荣县| 东港市| 溧水县| 皋兰县| 榆社县| 孝感市| 潞城市| 铜鼓县| 昆明市| 鹤山市| 德令哈市| 临沂市| 收藏| 嘉黎县| 丹阳市|