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

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

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

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

Request-Reply模式:

客戶端在請(qǐng)求后,服務(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,沒有隊(duì)列緩存,斷開連接數(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ù)競(jìng)爭獲取處理。區(qū)別于Publish-Subscribe存在一個(gè)數(shù)據(jù)緩存和處理負(fù)載。

當(dāng)連接被斷開,數(shù)據(jù)不會(huì)丟失,重連后數(shù)據(jù)繼續(xù)發(fā)送到對(duì)端

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實(shí)現(xiàn)方式就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

阿坝县| 商丘市| 肥乡县| 贞丰县| 红桥区| 康马县| 敦煌市| 孟村| 宝山区| 建始县| 潼南县| 广汉市| 石泉县| 若尔盖县| 永靖县| 从江县| 舒兰市| 神池县| 积石山| 康马县| 鄂伦春自治旗| 民乐县| 榆林市| 黑河市| 金秀| 施甸县| 濮阳县| 灵丘县| 东乡族自治县| 法库县| 桂东县| 盖州市| 莱州市| 乌什县| 诸城市| 博白县| 赤峰市| 中江县| 罗江县| 昌宁县| 伊宁市|