ZMQ_MSG_SEND - Online Linux Manual PageSection : 3
Updated : 01/21/2023
Source : 0MQ 4​.3​.4
Note : 0MQ Manual

NAMEzmq_msg_send − send a message part on a socket

SYNOPSISint zmq_msg_send (zmq_msg_t *msg, void *socket, int flags);

DESCRIPTIONThe zmq_msg_send() function is identical to zmq_sendmsg(3), which shall be deprecated in future versions​. zmq_msg_send() is more consistent with other message manipulation functions​. The zmq_msg_send() function shall queue the message referenced by the msg argument to be sent to the socket referenced by the socket argument​. The flags argument is a combination of the flags defined below: ZMQ_DONTWAIT For socket types (DEALER, PUSH) that block (either with ZMQ_IMMEDIATE option set and no peer available, or all peers having full high−water mark), specifies that the operation should be performed in non−blocking mode​. If the message cannot be queued on the socket, the zmq_msg_send() function shall fail with errno set to EAGAIN​. ZMQ_SNDMORE Specifies that the message being sent is a multi−part message, and that further message parts are to follow​. Refer to the section regarding multi−part messages below for a detailed description​. The zmq_msg_t structure passed to zmq_msg_send() is nullified on a successful call​. If you want to send the same message to multiple sockets you have to copy it (e​.g​. using zmq_msg_copy())​. If the call fails, the zmq_msg_t structure stays intact, and must be consumed by another call to zmq_msg_send() on the same or another socket, or released using zmq_msg_close() to avoid a memory leak​. .it 1 an-trap
Note ¶.br A successful invocation of zmq_msg_send() 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​. You do not need to call zmq_msg_close() after a successful zmq_msg_send()​.

Multi−part messagesA 0MQ message is composed of 1 or more message parts​. Each message part is an independent zmq_msg_t in its own right​. 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​.

RETURN VALUEThe zmq_msg_send() function shall return number of bytes in the message if successful (if number of bytes is higher than MAX_INT, the function will return MAX_INT)​. Otherwise it shall return −1 and set errno to one of the values defined below​.

ERRORSEAGAIN Non−blocking mode was requested and the message cannot be sent at the moment​. ENOTSUP The zmq_msg_send() operation is not supported by this socket type​. EINVAL The sender tried to send multipart data, which the socket type does not allow​. EFSM The zmq_msg_send() operation cannot be performed on this socket at the moment due to the socket not being in the appropriate state​. This error may occur with socket types that switch between several states, such as ZMQ_REP​. See the messaging patterns section of zmq_socket(3) for more information​. ETERM The 0MQ context associated with the specified socket was terminated​. ENOTSOCK The provided socket was invalid​. EINTR The operation was interrupted by delivery of a signal before the message was sent​. EFAULT Invalid message​. EHOSTUNREACH The message cannot be routed​.

EXAMPLEFilling in a message and sending it to a socket. /* Create a new message, allocating 6 bytes for message content */ zmq_msg_t msg; int rc = zmq_msg_init_size (&msg, 6); assert (rc == 0); /* Fill in message content with 'AAAAAA' */ memset (zmq_msg_data (&msg), 'A', 6); /* Send the message to the socket */ rc = zmq_msg_send (&msg, socket, 0); assert (rc == 6);Sending a multi-part message. /* Send a multi−part message consisting of three parts to socket */ rc = zmq_msg_send (&part1, socket, ZMQ_SNDMORE); rc = zmq_msg_send (&part2, socket, ZMQ_SNDMORE); /* Final part; no more parts to follow */ rc = zmq_msg_send (&part3, socket, 0);

SEE ALSOzmq_recv(3) zmq_send(3) zmq_msg_recv(3) zmq_socket(7) zmq(7)

AUTHORSThis page was written by the 0MQ community​. To make a change please read the 0MQ Contribution Policy at http://www​.zeromq​.org/docs:contributing​.
0
Johanes Gumabo
Data Size   :   18,454 byte
man-zmq_msg_send.3Build   :   2024-12-05, 20:55   :  
Visitor Screen   :   x
Visitor Counter ( page / site )   :   3 / 193,202
Visitor ID   :     :  
Visitor IP   :   3.145.106.176   :  
Visitor Provider   :   AMAZON-02   :  
Provider Position ( lat x lon )   :   39.962500 x -83.006100   :   x
Provider Accuracy Radius ( km )   :   1000   :  
Provider City   :   Columbus   :  
Provider Province   :   Ohio ,   :   ,
Provider Country   :   United States   :  
Provider Continent   :   North America   :  
Visitor Recorder   :   Version   :  
Visitor Recorder   :   Library   :  
Online Linux Manual Page   :   Version   :   Online Linux Manual Page - Fedora.40 - march=x86-64 - mtune=generic - 24.12.05
Online Linux Manual Page   :   Library   :   lib_c - 24.10.03 - march=x86-64 - mtune=generic - Fedora.40
Online Linux Manual Page   :   Library   :   lib_m - 24.10.03 - march=x86-64 - mtune=generic - Fedora.40
Data Base   :   Version   :   Online Linux Manual Page Database - 24.04.13 - march=x86-64 - mtune=generic - fedora-38
Data Base   :   Library   :   lib_c - 23.02.07 - march=x86-64 - mtune=generic - fedora.36

Very long time ago, I have the best tutor, Wenzel Svojanovsky . If someone knows the email address of Wenzel Svojanovsky , please send an email to johanes_gumabo@yahoo.co.id .
If error, please print screen and send to johanes_gumabo@yahoo.co.id
Under development. Support me via PayPal.

ERROR : Need New Coding :         (parse_manual_page_|249|zmq_msg_send.3|61|it|.it 1 an-trap )