ZMQ_SEND_CONST(3) | 0MQ Manual | ZMQ_SEND_CONST(3) |
zmq_send_const - send a constant-memory message part on a socket
int zmq_send_const (void *socket, const void *buf, size_t len, int flags);
The zmq_send_const() function shall queue a message created from the buffer referenced by the buf and len arguments. The message buffer is assumed to be constant-memory and will therefore not be copied or deallocated in any way. The flags argument is a combination of the flags defined below:
ZMQ_DONTWAIT
ZMQ_SNDMORE
A successful invocation of zmq_send_const() does not indicate that the message has been transmitted to the network, only that it has been queued on the socket and 0MQ has assumed responsibility for the message.
A 0MQ message is composed of 1 or more message parts. 0MQ ensures atomic delivery of messages: peers shall receive either all message parts of a message or none at all. The total number of message parts is unlimited except by available memory.
An application that sends multi-part messages must use the ZMQ_SNDMORE flag when sending each message part except the final one.
The zmq_send_const() function shall return number of bytes in the message if successful. Otherwise it shall return -1 and set errno to one of the values defined below.
EAGAIN
ENOTSUP
EFSM
ETERM
ENOTSOCK
EINTR
EHOSTUNREACH
Sending a multi-part message.
/* Send a multi-part message consisting of three parts to socket */ rc = zmq_send_const (socket, "ABC", 3, ZMQ_SNDMORE); assert (rc == 3); rc = zmq_send_const (socket, "DEFGH", 5, ZMQ_SNDMORE); assert (rc == 5); /* Final part; no more parts to follow */ rc = zmq_send_const (socket, "JK", 2, 0); assert (rc == 2);
This page was written by the 0MQ community. To make a change please read the 0MQ Contribution Policy at http://www.zeromq.org/docs:contributing.
01/18/2023 | 0MQ 4.3.4 |