【问题标题】:Why a ZeroMQ demo code doesn't work on Win10?为什么 ZeroMQ 演示代码在 Win10 上不起作用?
【发布时间】:2020-03-04 14:46:54
【问题描述】:

我正在学习如何从客户/交易者的角度与服务器进行通信。看起来 ZeroMQ 是处理这个问题的首选包。我在网站上找到了这段演示代码。问题是它没有像这篇文章中那样产生所需的输出:Why a ZeroMQ example does not work?

每当我尝试运行代码时,它都会冻结,并且没有任何结果。 我什至无法在上面的帖子中发表评论和提问,因为我的信誉不够好。

为了您的信息,我尝试在 Windows 10 计算机上运行代码。

我相信我已经更改了防火墙上 TCP 连接的入站和出站设置,我读到这是 Win-10 需要做的。我还想也许我应该将目录的写入方式从“//”更改为“\\”。也没有用。另外,我尝试将本地 tcp 更改为“tcp://127.0.0.1:5555”,但仍然没有。
这是代码,

import time
import zmq

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

while True:
    message=socket.recv()
    print("Received request: %s" % message)

    time.sleep(1)
    print("test")
    socket.send(b"World")

import zmq

context = zmq.Context()

print("Connecting to hello world server...")
socket = context.socket(zmq.REQ)
socket.connect("tcp://*:5555")

for request in range(10):
    print("Sending request %s..." % request)
    socket.send(b"Hello")

    message = socket.recv()
    print("Received reply %s [%s]" % (request, message))

任何建议都将不胜感激。

【问题讨论】:

    标签: python tcp zeromq


    【解决方案1】:

    如果您从未使用过 ZeroMQ,
    您可以在这里先看看"ZeroMQ Principles in less than Five Seconds"
    在深入了解更多细节之前



    Q“为什么 ZeroMQ 演示代码在 Win10 上不起作用?”

    因为这个 SLOC:

    socket.connect( "tcp://*:5555" ) # production-grade code always ERROR checks a call
    

    这个调用应该指定一个tcp://-TransportClass 一个有效的address:port去尝试.connect(),它必须通过上面发布的尝试失败" *:port"

    修复它,您应该准备好进入零之禅的美丽花园。

    【讨论】:

      猜你喜欢
      • 2018-11-14
      • 2014-05-15
      • 1970-01-01
      • 1970-01-01
      • 2011-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多