Skip to content

Instantly share code, notes, and snippets.

@sustrik
Created April 22, 2011 09:11
Show Gist options
  • Save sustrik/936322 to your computer and use it in GitHub Desktop.
Save sustrik/936322 to your computer and use it in GitHub Desktop.
#include "zmq.h"
#include "assert.h"
#include "stdint.h"
int main ()
{
void *ctx = zmq_init (1);
assert (ctx);
void *s = zmq_socket (ctx, ZMQ_SUB);
int rc = zmq_setsockopt (s, ZMQ_SUBSCRIBE, "", 0);
assert (rc == 0);
int sz = 100;
rc = zmq_setsockopt (s, ZMQ_RCVHWM, &sz, sizeof (sz));
assert (rc == 0);
rc = zmq_connect (s, "tcp://127.0.0.1:2211");
assert (rc == 0);
char buff [1000];
while (true) {
rc = zmq_recv (s, buff, 1000, 0);
assert (rc == 5);
int more;
size_t moresz;
rc = zmq_getsockopt (s, ZMQ_RCVMORE, &more, &moresz);
assert (rc == 0);
assert (more);
rc = zmq_recv (s, buff, 1000, 0);
assert (rc == 4);
rc = zmq_getsockopt (s, ZMQ_RCVMORE, &more, &moresz);
assert (rc == 0);
assert (more);
rc = zmq_recv (s, buff, 1000, 0);
assert (rc == 1000);
rc = zmq_getsockopt (s, ZMQ_RCVMORE, &more, &moresz);
assert (rc == 0);
assert (!more);
}
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment