Cでsub
sub.c
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <zmq.h> #include <assert.h> #define MSG_SIZE 128 int main(int argc, char **argv){ printf("sub start\n"); int rc; void *ctx, *sock; zmq_msg_t msg; assert(ctx = zmq_init(1)); assert(sock = zmq_socket(ctx, ZMQ_SUB)); rc = zmq_connect(sock, "tcp://127.0.0.1:5000"); assert(rc == 0); char *opt = "count"; zmq_setsockopt(sock, ZMQ_SUBSCRIBE, opt, strlen(opt)); assert(rc == 0); for(;;){ rc = zmq_msg_init(&msg); assert(rc == 0); rc = zmq_msg_init_size(&msg, MSG_SIZE); assert(rc == 0); rc = zmq_recv(sock, &msg, 0); assert(rc == 0); char *data = (char *)zmq_msg_data(&msg); printf("%s\n", data); } }
gcc -O sub.c -o sub_c.bin -I/usr/local/include -L. -L/usr/local/lib /usr/local/lib/libzmq.dylib