diff options
author | Martin Lucina <martin@lucina.net> | 2011-11-09 18:51:46 +0100 |
---|---|---|
committer | Martin Lucina <martin@lucina.net> | 2011-11-09 18:51:46 +0100 |
commit | ff7caa01f47df249066169daa314664c3669842e (patch) | |
tree | 0b7750d6c7056e191260afe3c90aef4c5c26a313 /myclient.c |
Initial commit
Diffstat (limited to 'myclient.c')
-rw-r--r-- | myclient.c | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/myclient.c b/myclient.c new file mode 100644 index 0000000..5eba6a7 --- /dev/null +++ b/myclient.c @@ -0,0 +1,78 @@ +/* myclient.c: "External" client component. + * + * Copyright (C) 2011 VMware, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ + +#include <stdio.h> +#include <stdlib.h> +#include <zmq.h> +#include <zmq_utils.h> + +#define ERR_EXIT(what) { \ + fprintf (stderr, "error in %s: %s\n", what, zmq_strerror (errno)); \ + exit (EXIT_FAILURE); \ + } + +int main (int argc, char *argv []) +{ + const char *connect_to = "dns://myservice.test"; + void *ctx; + void *s; + int rc; + zmq_msg_t msg; + + if (argc != 1) { + fprintf (stderr, "usage: myclient\n"); + exit (EXIT_FAILURE); + } + + ctx = zmq_init (1); + if (!ctx) + ERR_EXIT ("zmq_init"); + + s = zmq_socket (ctx, ZMQ_SUB); + if (!s) + ERR_EXIT ("zmq_socket"); + + rc = zmq_setsockopt (s, ZMQ_SUBSCRIBE, "", 0); + if (rc != 0) + ERR_EXIT ("zmq_setsockopt"); + + rc = zmq_connect (s, connect_to); + if (rc != 0) + ERR_EXIT ("zmq_connect"); + + rc = zmq_msg_init (&msg); + if (rc != 0) + ERR_EXIT ("zmq_msg_init"); + + for (;;) { + rc = zmq_recvmsg (s, &msg, 0); + if (rc < 0) + ERR_EXIT ("zmq_recvmsg"); + + printf ("+"); + fflush (stdout); + } + + exit (EXIT_SUCCESS); +} + |