Skip to content

Instantly share code, notes, and snippets.

Created March 17, 2011 15:29
Show Gist options
  • Select an option

  • Save anonymous/874516 to your computer and use it in GitHub Desktop.

Select an option

Save anonymous/874516 to your computer and use it in GitHub Desktop.
router
#include <assert.h>
#include <zmq.h>
#include <unistd.h>
#include "zhelpers.h"
int main(){
void *ctx = zmq_init(1);
int major, minor, patch;
zmq_version (&major, &minor, &patch); printf ("Current ØMQ version is %d.%d.%d\n", major, minor, patch);
void *socket = zmq_socket(ctx, ZMQ_XREP);
zmq_bind(socket, "ipc://routing.ipc");
int rc = 0;
int timeout = 1000;
char *address = "A";
sleep(1);
while(1){
sleep(2);
printf("Sending msg PING\n");
s_sendmore (socket, address);
s_sendmore (socket, "");
rc = s_send (socket, "PING");
printf("rc: %i\n", rc);
zmq_pollitem_t items[] = {{socket, 0, ZMQ_POLLIN, 0}};
zmq_poll(items, 1, timeout * 1000);
if(items[0].revents & ZMQ_POLLIN){
char *add = s_recv(socket);
char *empty = s_recv(socket);
char *msg = s_recv(socket);
printf("Received: %s %s %s\n", add, empty, msg);
free(add);free(msg);free(empty);
}
}
zmq_close(socket);
zmq_term(ctx);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment