http://hintjens.wdfiles.com/local--files/main:files/cc1pe.pdfを参照してください 。 Page 22 Chapter Divide and Conquer
Ventilator[PUSH]
___________________|____________________
| | |
[PULL]Worker[PUSH] [PULL]Worker[PUSH] [PULL]Worker[PUSH]
|__________________|___________________|
|
[PULL]Sink
// taskvent.c
// Socket to send messages on
void *context = zmq_ctx_new ();
void *sender = zmq_socket (context, ZMQ_PUSH);
zmq_bind (sender, "tcp://*:5557");
// Socket to send start of batch message on
void *sink = zmq_socket (context, ZMQ_PUSH);
zmq_connect (sink, "tcp://localhost:5558");
// taskwork.c
// Socket to receive messages on
void *context = zmq_ctx_new ();
void *receiver = zmq_socket (context, ZMQ_PULL);
zmq_connect (receiver, "tcp://localhost:5557");
// Socket to send messages to
void *sender = zmq_socket (context, ZMQ_PUSH);
zmq_connect (sender, "tcp://localhost:5558");
// tasksink.c
// Prepare our context and socket
void *context = zmq_ctx_new ();
void *receiver = zmq_socket (context, ZMQ_PULL);
zmq_bind (receiver, "tcp://*:5558");
zmq_bind または zmq_connect をいつ使用するか混乱しています。ほとんどの場合、「サーバー」は zmq_bind を使用し、「クライアント」は zmq_connect を使用します。
質問> いつ zmq_bind を使用し、いつ zmq_connect を使用する必要がありますか?
zmq_bind - accept incoming connections on a socket
zmq_connect - create outgoing connection from socket