Hi<div><br></div><div>You need to set socket options before connect.</div><div><br></div><div>Thanks</div><div>Min<span></span><br><br>2013년 2월 17일 일요일에 suraj nellikar님이 작성:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi,<div>I am using zmq 3.2 library on Ubuntu (32 bit machine). I am trying to run a test PUB-SUB model but the client is failing to set the sockopt to ZMQ_SUBSCRIBE. Any idea what am I doing wrong here?</div><div><br></div>


<div>Here's the snippet of the code.</div><div>main() {</div><div><div>    void *context = zmq_ctx_new();</div><div>    void *req = zmq_socket(context,ZMQ_REQ);</div><div>    void *sub = zmq_socket(context,ZMQ_SUBSCRIBE);</div>


<div><br></div><div>    int rc = zmq_connect(req,"tcp://<a href="http://127.0.0.1:5555" target="_blank">127.0.0.1:5555</a>");</div><div>    printf("req connect, rc = %d\n",rc);</div><div>    rc = zmq_connect(sub,"tcp://<a href="http://192.168.72.130:6666" target="_blank">192.168.72.130:6666</a>");</div>


<div>    printf("sub connect, rc = %d\n",rc);</div><div>    uint64_t affinity = 1;</div><div>    rc = zmq_setsockopt (sub, ZMQ_AFFINITY, &affinity, sizeof affinity);       //This works only when I use uint64_t for affinity. It fails for int.</div>


<div>    printf("setsockopt, rc = %d, errno = %s\n",rc,strerror(errno));</div><div>    rc = zmq_setsockopt(sub,ZMQ_SUBSCRIBE,"",0);                                      //This always fails! rc is always -1</div>


<div>    printf("setsockopt, ZMQ_SUBSCRIBE = %d,rc = %d, errno = %s\n",ZMQ_SUBSCRIBE,rc,strerror(errno));</div></div><div><br></div><div>Thanks.</div>
</blockquote></div>