Python中文
首页
教程
问答
标签
搜索
登录
注册
ZeroMQ路由器套接字无法向代表发送消息
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我使用ZeroMQ实现了一个简单的请求-应答体系结构。这对于pyzmq2.1.11版是正确的。不幸的是,当我在PyZMQ 14.0.0版上测试它时,sender(REQ)可以发送到路由器,然后路由器接收到它的消息并发送到接收方(REP),但是接收方没有接收到消息! 当我将PyZMQ从2.1.11版升级到14.0.0版时遇到了这个问题。在</p> <p><strong>请求<;->;路由器<;->;代表</strong></p> <p>这是我的代码:</p> <p><em>发件人.py</em></p> <pre><code>import zmq import time if __name__=='__main__': context = zmq.Context() socket = context.socket(zmq.REQ) socket.setsockopt(zmq.IDENTITY, "S") socket.connect("tcp://127.0.0.1:6660") i = 0 while True: i += 1 socket.send("R", zmq.SNDMORE) socket.send("", zmq.SNDMORE) socket.send("Message: %d" % i) print("Message : %d sent" % i) fromAddr = socket.recv() empty = socket.recv() resp = socket.recv() print("%s received!" % str(resp)) time.sleep(1) </code></pre> <p><em>路由器.py</em></p> ^{pr2}$ <p><em>接收器.py</em></p> <pre><code>import zmq import time if __name__=='__main__': context = zmq.Context() socket = context.socket(zmq.REP) socket.setsockopt(zmq.IDENTITY, "R") socket.connect("tcp://127.0.0.1:6660") while True: print("Wating for request...") toAddr = socket.recv() empty = socket.recv() req = socket.recv() print("%s received!" % str(req)) socket.send(toAddr, zmq.SNDMORE) socket.send(empty, zmq.SNDMORE) socket.send("Reply to %s" % str(req)) </code></pre> <p>当我使用这种架构时:</p> <p><img src="https://i.stack.imgur.com/LaXpN.png" alt="routing with DEALER"/></p> <p><code>DEALER</code>不路由到多个接收器。<code>DEALER</code>只使用循环方法向接收者发送消息。如果可以使用<code>ROUTER</code>代替<code>DEALER</code>,则可以将消息路由到特定的接收方,并在这些接收者之间进行循环。在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>路由器到REP套接字是无效的组合,如下所述:<a href="http://zguide.zeromq.org/page:all#Request-Reply-Combinations" rel="nofollow">http://zguide.zeromq.org/page:all#Request-Reply-Combinations</a></p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何添加虚拟方法
1 回答
如何添加表示整数的擦边字符串?
8 回答
如何添加要在Bokeh中使用的新font.ttf文件?
3 回答
如何添加要显示的矩阵XY轴编号和XY轴
10 回答
如何添加计数?
4 回答
如何添加计数器函数?
5 回答
如何添加计数器列来计算数据帧中另一列中的特定值?
6 回答
如何添加计数器来跟踪while循环中的月份和年份?
10 回答
如何添加计数并删除countplot的顶部和右侧脊椎?
4 回答
如何添加计时器wx.应用程序更新窗口对象的主循环?
6 回答
如何添加评论到帖子?PostDetailVew,Django 2.1.5
10 回答
如何添加评论拉梅尔亚姆
8 回答
如何添加诸如矩阵Python/Pandas之类的数据帧?
2 回答
如何添加谷歌地点自动完成到Flask?
4 回答
如何添加超时、python discord bot
3 回答
如何添加超过1dp的检查
8 回答
如何添加距离方法
7 回答
如何添加跟随游戏的敌人精灵
2 回答
如何添加路径以便python可以找到程序?
8 回答
如何添加身份验证/安全性以使用happybase访问HBase?
1 回答