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; +}