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
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.