diff options
Diffstat (limited to 'src/client.c')
| -rw-r--r-- | src/client.c | 60 |
1 files changed, 34 insertions, 26 deletions
diff --git a/src/client.c b/src/client.c index d4a6c5c..35a62c6 100644 --- a/src/client.c +++ b/src/client.c @@ -8,32 +8,40 @@ #include "utils.h" - int main (int argc, char *argv []) { - // Socket to talk to server - printf ("Collecting updates from weather server...\n"); - void *context = zmq_ctx_new (); - void *subscriber = zmq_socket (context, ZMQ_SUB); - int rc = zmq_connect (subscriber, "tcp://"STRINGIFY(PUBLISHER_ADDR)":"STRINGIFY(PUBLISHER_PORT)); - assert (rc == 0); - - // Subscribe to zipcode, default is NYC, 10001 - // Subscribe to zipcode, default is NYC, 10001 - const char *filter = "Hello"; - rc = zmq_setsockopt (subscriber, ZMQ_SUBSCRIBE, - filter, strlen(filter)); - assert (rc == 0); - - // Process 100 updates - int update_nbr; - char buffer[10]; - for (update_nbr = 0; update_nbr < 100; update_nbr++) { - zmq_recv (subscriber, buffer, 10, 0); - printf("Received!"); - } - - zmq_close (subscriber); - zmq_ctx_destroy (context); - return 0; + if(argc != 3){ + printf("Usage: %s <address> <port>",argv[0]); + exit(1); + } + + char *ip=argv[1]; + int port=atoi(argv[2]); + + // Socket to talk to server + void *context = zmq_ctx_new (); + void *subscriber = zmq_socket (context, ZMQ_SUB); + char bindto[30]; + sprintf(bindto,"tcp://%s:%d",ip,port); + int rc = zmq_connect (subscriber, bindto); + if(rc!=0){ + printf("Failed to bind zmq on %s\n",bindto); + exit(1); + } + rc = zmq_setsockopt (subscriber, ZMQ_SUBSCRIBE, + ZMQ_TOKEN, strlen(ZMQ_TOKEN)); + + + + char buffer[10]; + zmq_recv (subscriber, buffer, 10, 0); + printf("Received!"); + + + + + zmq_close (subscriber); + zmq_ctx_destroy (context); + + return 0; }
\ No newline at end of file |
