2015-04-03 39 views
0

我在我的程序得到這個錯誤:zmq.error.ZMQError:沒有這樣的設備

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.

回答

相關問題