Skip to content

Instantly share code, notes, and snippets.

@sustrik
Created March 24, 2012 06:43
Show Gist options
  • Save sustrik/2179118 to your computer and use it in GitHub Desktop.
Save sustrik/2179118 to your computer and use it in GitHub Desktop.
#include <xs.h>
#include <assert.h>
#include <stdio.h>
int main ()
{
void *ctx = xs_init ();
assert (ctx);
int rc = xs_plug (ctx, "/usr/local/lib/libfskeleton.so");
assert (rc == 0);
void *pub = xs_socket (ctx, XS_PUB);
assert (pub);
rc = xs_bind (pub, "inproc://a");
assert (rc == 0);
void *sub = xs_socket (ctx, XS_SUB);
assert (sub);
rc = xs_connect (sub, "inproc://a");
assert (rc == 0);
int filter = 60000;
rc = xs_setsockopt (sub, XS_FILTER, &filter, sizeof (filter));
assert (rc == 0);
rc = xs_setsockopt (sub, XS_SUBSCRIBE, "A", 1);
assert (rc == 0);
rc = xs_send (pub, "B", 1, 0);
assert (rc == 1);
rc = xs_send (pub, "A", 1, 0);
assert (rc == 1);
char buf [1];
rc = xs_recv (sub, buf, 1, 0);
assert (rc == 1);
assert (buf [0] == 'A');
printf ("OK\n");
rc = xs_close (sub);
assert (rc == 0);
rc = xs_close (pub);
assert (rc == 0);
rc = xs_term (ctx);
assert (rc == 0);
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment