From a600b87d42f32fbf0eff6156842f7fdc01bd45a0 Mon Sep 17 00:00:00 2001 From: Dan Buch Date: Fri, 16 Mar 2012 09:43:49 -0400 Subject: [PATCH] Filling in the example C client, too --- zeromq/.gitignore | 1 + zeromq/Makefile | 10 ++++++++++ zeromq/hwclient.c | 32 ++++++++++++++++++++++++++++++++ 3 files changed, 43 insertions(+) create mode 100644 zeromq/hwclient.c diff --git a/zeromq/.gitignore b/zeromq/.gitignore index a409554..65c3bdc 100644 --- a/zeromq/.gitignore +++ b/zeromq/.gitignore @@ -1 +1,2 @@ hwserver +hwclient diff --git a/zeromq/Makefile b/zeromq/Makefile index fce3613..c28abc1 100644 --- a/zeromq/Makefile +++ b/zeromq/Makefile @@ -2,5 +2,15 @@ CFLAGS += -I. -I/usr/local/include LDFLAGS += -lstdc++ -lpthread -luuid -lrt +all: hwserver hwclient + + hwserver: hwserver.c /usr/local/lib/libzmq.a $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) + + +hwclient: hwclient.c /usr/local/lib/libzmq.a + $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) + + +.PHONY: all diff --git a/zeromq/hwclient.c b/zeromq/hwclient.c new file mode 100644 index 0000000..16c600c --- /dev/null +++ b/zeromq/hwclient.c @@ -0,0 +1,32 @@ +#include +#include +#include +#include + +int main(void) +{ + void *context = zmq_init(1); + + printf("Connecting to hello world server.\n"); + void *requester = zmq_socket(context, ZMQ_REQ); + zmq_connect(requester, "tcp://localhost:5555"); + + int request_nbr; + for (request_nbr = 0; request_nbr != 10; request_nbr++) { + zmq_msg_t request; + zmq_msg_init_size(&request, 5); + memcpy(zmq_msg_data(&request), "Hello", 5); + printf("Sending Hello %d...\n", request_nbr); + zmq_send(requester, &request, 0); + zmq_msg_close(&request); + + zmq_msg_t reply; + zmq_msg_init(&reply); + zmq_recv(requester, &reply, 0); + printf("Received World %d\n", request_nbr); + zmq_msg_close(&reply); + } + zmq_close(requester); + zmq_term(context); + return 0; +}