zstr(3)

zstr(3)

CZMQ Manual - CZMQ/1.4.1

Name

zstr - sending and receiving strings

Synopsis

//  Receive a string off a socket, caller must free it
CZMQ_EXPORT char *
    zstr_recv (void *socket);

//  Receive a string off a socket if socket had input waiting
CZMQ_EXPORT char *
    zstr_recv_nowait (void *socket);

//  Send a formatted string to a socket
CZMQ_EXPORT int
    zstr_send (void *socket, const char *format, ...);

//  Send a formatted string to a socket, with MORE flag
CZMQ_EXPORT int
    zstr_sendm (void *socket, const char *format, ...);

//  Self test of this class
CZMQ_EXPORT int
    zstr_test (bool verbose);

Description

The zstr class provides utility functions for sending and receiving C strings across ØMQ sockets. It sends strings without a terminating null, and appends a null byte on received strings. This class is for simple message sending.

Example

From zstr_test method

 zctx_t *ctx = zctx_new ();
 assert (ctx);

 void *output = zsocket_new (ctx, ZMQ_PAIR);
 assert (output);
 zsocket_bind (output, "inproc://zstr.test");
 void *input = zsocket_new (ctx, ZMQ_PAIR);
 assert (input);
 zsocket_connect (input, "inproc://zstr.test");

 // Send ten strings, five strings with MORE flag and then END
 int string_nbr;
 for (string_nbr = 0; string_nbr < 10; string_nbr++)
 zstr_send (output, "this is string %d", string_nbr);
 for (string_nbr = 0; string_nbr < 5; string_nbr++)
 zstr_sendm (output, "this is string %d", string_nbr);
 zstr_send (output, "END");

 // Read and count until we receive END
 string_nbr = 0;
 for (string_nbr = 0;; string_nbr++) {
 char *string = zstr_recv (input);
 if (streq (string, "END")) {
 free (string);
 break;
 }
 free (string);
 }
 assert (string_nbr == 15);
  zctx_destroy (&ctx);

See also

czmq(7)

Authors

The CZMQ manual was written by Pieter Hintjens<moc.xitami|hp#moc.xitami|hp>.

Resources

Main web site: http://czmq.zeromq.org/

Report bugs to the ØMQ development mailing list: <gro.qmorez.stsil|ved-qmorez#gro.qmorez.stsil|ved-qmorez>

Copyright

Copyright (c) 1991-2010 iMatix Corporation and contributors. License LGPLv3+: GNU LGPL 3 or later <http://gnu.org/licenses/lgpl.html>. This is free software: you are free to change it and redistribute it. There is NO WARRANTY, to the extent permitted by law. For details see the files COPYING and COPYING.LESSER included with the CZMQ distribution.