mirror of
https://gitlab.com/manzerbredes/ina260-zmq-publisher.git
synced 2025-04-07 04:16:26 +02:00
39 lines
No EOL
1.1 KiB
C
39 lines
No EOL
1.1 KiB
C
// Weather update client
|
|
// Connects SUB socket to tcp://localhost:5556
|
|
// Collects weather updates and finds avg temp in zipcode
|
|
#include <zmq.h>
|
|
#include <assert.h>
|
|
#include <time.h>
|
|
#include <string.h>
|
|
|
|
#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;
|
|
} |