dwww Home | Manual pages | Find package

ZMQ_RECV(3)                       0MQ Manual                       ZMQ_RECV(3)

NAME
       zmq_recv - receive a message part from a socket

SYNOPSIS
       int zmq_recv (void *socket, void *buf, size_t len, int flags);

DESCRIPTION
       The zmq_recv() function shall receive a message from the socket
       referenced by the socket argument and store it in the buffer referenced
       by the buf argument. Any bytes exceeding the length specified by the
       len argument shall be truncated. If there are no messages available on
       the specified socket the zmq_recv() function shall block until the
       request can be satisfied. The flags argument is a combination of the
       flags defined below: The buf argument may be null if len is zero.

       ZMQ_DONTWAIT
           Specifies that the operation should be performed in non-blocking
           mode. If there are no messages available on the specified socket,
           the zmq_recv() function shall fail with errno set to EAGAIN.

   Multi-part messages
       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 processes multi-part messages must use the
       ZMQ_RCVMORE zmq_getsockopt(3) option after calling zmq_recv() to
       determine if there are further parts to receive.

RETURN VALUE
       The zmq_recv() function shall return number of bytes in the message if
       successful. Note that the value can exceed the value of the len
       parameter in case the message was truncated. If not successful the
       function shall return -1 and set errno to one of the values defined
       below.

ERRORS
       EAGAIN
           Either the timeout set via the socket-option ZMQ_RCVTIMEO (see
           zmq_setsockopt(3)) has been reached (flag ZMQ_DONTWAIT not set)
           without being able to read a message from the socket or there are
           no messages available at the moment (flag ZMQ_DONTWAIT set) and the
           operation would block.

       ENOTSUP
           The zmq_recv() operation is not supported by this socket type.

       EFSM
           The zmq_recv() 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 a
           message was available.

EXAMPLE
       Receiving a message from a socket.

           char buf [256];
           nbytes = zmq_recv (socket, buf, 256, 0);
           assert (nbytes != -1);

SEE ALSO
       zmq_send(3) zmq_getsockopt(3) zmq_setsockopt(3) zmq_socket(7) zmq(7)

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

0MQ 4.3.4                         01/18/2023                       ZMQ_RECV(3)

Generated by dwww version 1.15 on Wed Jun 26 18:11:59 CEST 2024.