`
pjwqq
  • 浏览: 81177 次
社区版块
存档分类
最新评论

pyzmq的4种模式(REP/REQ)笔记

阅读更多

  REP/REQ模式就是最常见的Client/Server模式,zmq有亮点,翻译下:

 

  特点 1. 和pair模式不同的是这种模式下客户端socket可以连接多个server

          2. 客户端请求会被交替发送到server组的server

 

  要注意的2个地方:

          1. 客户端的 socket zmq.REQ 发送后会被阻塞直到新消息到来

          2. 服务端的 socket zmq.REP 会阻塞直到新请求到来 

  然后保证:Each Request/Reply is paired and has to be successful.

  

然后这样子就负载均衡了啊啊,真是幸福来的太快

代码如下,改了一点点:

client:

import zmq
import sys
import time
 
port = '5556'
port,port1,client_name= sys.argv[1:]	

context = zmq.Context()
socket = context.socket(zmq.REQ)
socket.connect('tcp://localhost:%s'%port)
if port1:
	socket.connect('tcp://localhost:%s'%port1)

for i in range(10):
	socket.send('client %s send message %d'%(client_name,i))
	msg = socket.recv()
	print msg

 server:

import zmq
import sys
import time

port = '5556'
server_name = ''
port,server_name = list(sys.argv[1:])

context = zmq.Context()
socket = context.socket(zmq.REP)
socket.bind('tcp://*:%s'%port)
print 'start listen:',port

while True:
	message = socket.recv()
	print 'recieve request:',message
	time.sleep(1)
	socket.send('reply from server:%s port:%s'%(server_name,port))

 run起来,

>>>python repreq-server.py 6665 server01
>>>python repreq-server.py 6666 server02
>>>python repreq-client.py 6665 6666 client01
>>>python repreq-client.py 6665 6666 client02

 发现果然是在交替调用2个server

 

然后告诫诸位:

 

....
socket.send ("Hello")
socket.send ("Hello1")
....

Error: zmq.core.error.ZMQError: Operation cannot be accomplished in current state
这样子是不行的,不能乱来
另外发现:客户端send后,如果服务器挂了,它还是照等不误,这个以后要注意着点
7
0
分享到:
评论

相关推荐

    REP-REQ.zip_Rep和req_zmq_zmq REP_zmq REP REQ_zmq_req

    通过分析这些代码,你可以深入了解如何在实际应用中设置和操作REP和REQ模式。 **应用场景**: ZMQ的REQ-REP模式常用于简单的服务请求,例如数据库查询、文件检索等,其中客户端发起请求,服务器执行操作并返回结果...

    Zeromq的异步req/rep模式

    zeromq 的异步demo,简单描述zmq的事例

    ZMQ-REQ\REP模式代码示例

    在ZMQ中,`REQ` 和 `REP` 是两种重要的模式,它们用于实现客户端-服务器(request-response)通信模型。在本示例中,我们将深入探讨这两种模式的工作原理及其代码实现。 **1. REQ-REP模式概述** 在`REQ`-`REP`模式...

    ZMQ REQ_REP实例

    ZMQ的服务端、客户端小例子,ZMQ使用4.0.4,是最新版本;开发工具是VC2010;编译的程序和使用ZMQ都是x64位版本。希望对学习ZMQ有帮助。运行的时候先打开server,之后启动client;实现了服务端和客户端的简单收发通信...

    req_rep.rar

    在这些模式中,req-rep(请求-响应)模式是最基础也最简单的一种,常用于实现客户端-服务器架构。本文将深入探讨基于zmqpp库实现的zeromq req-rep模式,以及如何避免程序陷入无限等待的问题。 首先,让我们了解...

    nanomsg-req-rep流程源码分析.docx

    Req/Rep模式是nanomsg库中的一种常见的通信模式,客户端发送请求,服务器端处理请求并返回响应。在这个模式下,客户端和服务器端都需要使用相应的套接字来进行通信。 知识点3:Socket消息槽 Socket消息槽是nanomsg...

    V-REP入门实例笔记

    - V-REP中的物体分为四种类型:静止/非静止、能够响应/非能够响应。 - 静止形状:在动力学仿真中位置固定。 - 非静止形状:受重力或外部力量影响而移动。 - 能够响应的形状:与其他能够响应的形状相互作用,如...

    Python库 | pyzmq-22.0.1-cp39-cp39-win_amd64.whl

    Socket类型包括PUB(发布者)、SUB(订阅者)、REQ(请求者)、REP(应答者)、DEALER(经销商)、ROUTER(路由器)等,每种类型对应不同的消息模式。 2. **Context(上下文)**:管理多个Socket,提供线程池和连接...

    PyPI 官网下载 | pyzmq-22.1.0-cp37-cp37m-manylinux1_i686.whl

    1. **Socket通信**:`pyzmq`提供了丰富的socket类型,如PUB/SUB、REQ/REP、PAIR等,可以满足不同场景下的通信需求。 2. **Message Framing**:ZeroMQ的message framing允许数据以帧的形式发送,每个帧可以是不同...

    matlab与V-rep连接的例子,matlab中rep函数,matlab

    4. **数据交换**:利用`rep.simxReadProximitySensor`等函数获取V-REP中的传感器数据,或者使用`rep.simxWriteJointPosition`等函数设置关节角度。 5. **执行仿真**:在Matlab中编写控制逻辑,根据接收到的数据调整...

    pyzmq-17.1.2-cp36-cp36m-win32

    消息双向的,有来有往,req端请求的消息,rep端必须答复给req端 2. 订阅发布模式 (sub 和 pub) 消息单向的,有去无回的。可按照发布端可发布制定主题的消息,订阅端可订阅喜欢的主题,订阅端只会收到自己已经...

    jsqlparser-3.2.jar

    jsqlparser-3.2.jar

    snakeyaml-1.28-API文档-中文版.zip

    赠送jar包:snakeyaml-1.28.jar; 赠送原API文档:snakeyaml-1.28-javadoc.jar; 赠送源代码:snakeyaml-1.28-sources.jar; 赠送Maven依赖信息文件:snakeyaml-1.28.pom; 包含翻译后的API文档:snakeyaml-1.28-...

    机器人 仿真 V-REP 入门笔记-上

    此外,"V-REP入门笔记-上.pdf"这份文档也应包含了许多基础操作和实例,是你学习的好帮手。理论学习的同时,动手实践是掌握V-REP的关键,尝试创建自己的场景和机器人模型,编写简单的控制脚本,将加速你的学习进程。 ...

    Python库 | pyzmq-17.1.0-cp27-cp27m-win32.whl

    以下是一个简单的REQ/REP模式的示例,展示了如何使用pyzmq创建一个请求-响应式的服务: ```python import zmq # 创建上下文 context = zmq.Context() # 创建客户端Socket并连接到服务器 client = context.socket...

    PyPI 官网下载 | pyzmq-17.0.0-cp34-cp34m-win32.whl

    4. **Pattern**:通信模式,如PUB/SUB、REQ/REP、DEALER/ROUTER等,定义了消息如何在套接字之间流动。 通过`pyzmq`,Python开发者可以轻松地在分布式系统中实现高并发、低延迟的消息传输,这对于构建高性能、可扩展...

    pyzmq-16.0.2.tar.gz

    然后,可以创建各种类型的`Socket`,如`PUB`(发布者)、`SUB`(订阅者)、`REQ`(请求者)和`REP`(响应者)等,以实现不同的通信模式。比如,创建一个请求/响应模式的Socket: ```python socket = context.socket...

    Python库 | pyzmq-15.3.0.zip

    - **套接字类型**:`pyzmq`支持ZeroMQ的所有套接字类型,如`REQ`(请求)、`REP`(响应)、`PUB`(发布)、`SUB`(订阅)、`DEALER`(交易商)、`ROUTER`(路由器)等,每种类型对应不同的消息模式。 - **消息处理**...

    机器人仿真软件V-REP入门笔记 下

    ### V-REP 机器人仿真软件轻量级模型建立详解 #### 一、引言 V-REP 是一款功能强大的机器人仿真软件,广泛应用于机器人技术的研究、教育和开发领域。为了帮助用户更好地掌握 V-REP 的使用技巧,本文将详细介绍如何...

Global site tag (gtag.js) - Google Analytics