【问题标题】:zmq.error.ZMQError: No such devicezmq.error.ZMQError: 没有这样的设备
【发布时间】:2015-06-08 20:39:49
【问题描述】:

我的程序出现了这个错误:

Traceback (most recent call last):
File "scriptA.py", line 17, in <module>
socketPub.bind("tcp://localhost:%s"% portPub)
File "socket.pyx", line 434, in zmq.backend.cython.socket.Socket.bind (zmq/backend/cython/socket.c:3928)
File "checkrc.pxd", line 21, in zmq.backend.cython.checkrc._check_rc (zmq/backend/cython/socket.c:6058)
zmq.error.ZMQError: No such device

这是我为重现它所做的一个简单脚本:

import zmq
import random
import sys
import time

port = "5566"
if len(sys.argv) > 1:
    port =  sys.argv[1]
    int(port)

portSub = "5556"
context = zmq.Context()

portPub = "5566"
#contextPub = zmq.Context()
socketPub = context.socket(zmq.PUB)
socketPub.bind("tcp://localhost:%s"% portPub)

socket = context.socket(zmq.SUB)
socket.connect("tcp://localhost:%s"% portSub)
socket.setsockopt(zmq.SUBSCRIBE,'')


while True:
    socket.send("BB", zmq.SNDMORE)
    socket.send("16", zmq.SNDMORE)
    socket.send("14", zmq.SNDMORE)
    socket.send("11", zmq.SNDMORE)
    socket.send("4")
    time.sleep(3)

我想订阅一个点并能够发送到另一个点。可能吗? 2个不同的端点。 A发送给B,B发送给C。

【问题讨论】:

    标签: python-2.7 pyzmq


    【解决方案1】:

    尝试将localhost 替换为127.0.0.1

    欲了解更多信息,请查看stackoverflow thread

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-07
      • 1970-01-01
      • 2016-05-30
      • 2021-07-01
      • 2014-07-03
      • 1970-01-01
      相关资源
      最近更新 更多