[zeromq-dev] Can't bind same ZMQ_UP/DOWNSTREAM multiple times.

Oliver Smith oliver at kfs.org
Mon Aug 16 09:27:02 CEST 2010


  import zmq
ctx = zmq.Context(1)
s1 = ctx.socket(zmq.DOWNSTREAM)
s2 = ctx.socket(zmq.DOWNSTREAM)
s1.bind("tcp://127.0.0.1:12345")
s2.bind("tcp://127.0.0.1.12345") <<- Gives address already in use.

This is a simplification of the issue, I am actually experiencing it in 
separate processes/threads on the same system.

Trying to do a multi-stage pipeline where one work-generator sends 
requests on which N threads are listening. These process the requests 
and generate additional requests which they dispatch to a second 
socket_t, beyond which are N more workers which produce the final output 
to a socket_t that feeds back to the original process.

Src ==N==> W1 ==>N+==> W2 ==> Dst

N requests sent to X number of Worker1, which generates 1+ requests to X 
number of Worker2, which generates 1+ results per request to send back 
to the dest port in the originating thread.

- Oliver




More information about the zeromq-dev mailing list