The subscriber connect() call is asynchronous.  It's possible the
publish messages are sent before the subscribe socket connects and
establishes its subscription.

Try sleeping for 100ms or so after the connect call, before the loop.

On 9/22/16 11:10 AM, Aurélien .... wrote:
> Hi,
>
> I'm trying to make a simple PUB / SUB test.
>
> First, I created the publisher, then the subscriber with a message to
> subscribe.
>
> Second, I send some messages from the publisher and I try to retreive
> them from the subscriber.
>
> The code compiles but the subscriber does not receive any data.
>
> My config is :
> - Windows 7 / Visual Studio 2015
> - Compile in /MTd (debug)
> - ZMQ Version : 4.1.4
>
> Here is the code :
>
> #include "zhelpers.hpp"
>
> void TestPubSub()
> {
> zmq::context_t context;
> zmq::socket_t publisher(context, ZMQ_PUB);
> zmq_bind(publisher, "tcp://*:5563");
>
> zmq::socket_t subscriber(context, ZMQ_SUB);
> subscriber.connect("tcp://localhost:5563");
> subscriber.setsockopt(ZMQ_SUBSCRIBE, "A");
>
> while (1) {
> //  Write two messages, each with an envelope and content
> s_sendmore(publisher, "A");
> s_send(publisher, "We don't want to see this");
> s_sendmore(publisher, "B");
> s_send(publisher, "We would like to see this");
>
> //  Read envelope with address
> std::string addr = s_recv(subscriber); // block here, waiting for
> messages which does not come
> //  Read message contents
> std::string contents = s_recv(subscriber);
> }
> }
>
> int main(int argc, char** argv)
> {
> TestPubSub();
> return 0;
> }
>
> Can you tel me where I'm wrong ?
>
> Thank you very much,
>
> Kin
>
>
> _______________________________________________
> zeromq-dev mailing list
> zeromq-dev@lists.zeromq.org
> http://lists.zeromq.org/mailman/listinfo/zeromq-dev

_______________________________________________
zeromq-dev mailing list
zeromq-dev@lists.zeromq.org
http://lists.zeromq.org/mailman/listinfo/zeromq-dev

Reply via email to