From b79dfcbc615917681204f97d0f0f36c1d58baa06 Mon Sep 17 00:00:00 2001 From: Dan Buch Date: Fri, 16 Mar 2012 15:24:24 -0400 Subject: [PATCH] Working through the weather update pub/sub example --- zeromq/.gitignore | 1 + zeromq/Makefile | 11 ++++------- zeromq/wuserver.c | 24 ++++++++++++++++++++++++ 3 files changed, 29 insertions(+), 7 deletions(-) create mode 100644 zeromq/wuserver.c diff --git a/zeromq/.gitignore b/zeromq/.gitignore index 65c3bdc..b101c65 100644 --- a/zeromq/.gitignore +++ b/zeromq/.gitignore @@ -1,2 +1,3 @@ hwserver hwclient +wuserver diff --git a/zeromq/Makefile b/zeromq/Makefile index c28abc1..5ca1d7d 100644 --- a/zeromq/Makefile +++ b/zeromq/Makefile @@ -1,16 +1,13 @@ CFLAGS += -I. -I/usr/local/include LDFLAGS += -lstdc++ -lpthread -luuid -lrt +LIBZMQ := /usr/local/lib/libzmq.a -all: hwserver hwclient +%:%.c + $(CC) $(CFLAGS) -o $@ $^ $(LIBZMQ) $(LDFLAGS) -hwserver: hwserver.c /usr/local/lib/libzmq.a - $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) - - -hwclient: hwclient.c /usr/local/lib/libzmq.a - $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) +all: hwserver hwclient wuserver .PHONY: all diff --git a/zeromq/wuserver.c b/zeromq/wuserver.c new file mode 100644 index 0000000..0fbea45 --- /dev/null +++ b/zeromq/wuserver.c @@ -0,0 +1,24 @@ +#include "zhelpers.h" + +int main(void) +{ + void *context = zmq_init(1); + void *publisher = zmq_socket(context, ZMQ_PUB); + zmq_bind(publisher, "tcp://*:5556"); + zmq_bind(publisher, "ipc://weather.ipc"); + + srandom((unsigned) time (NULL)); + while (1) { + int zipcode, temperature, relhumidity; + zipcode = randof(100000); + temperature = randof(215) - 80; + relhumidity = randof(50) + 10; + + char update[20]; + sprintf(update, "%05d %d %d", zipcode, temperature, relhumidity); + s_send(publisher, update); + } + zmq_close(publisher); + zmq_term(context); + return 0; +}