Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
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 ar-
     gument. 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  argu-
     ment 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 ex-
     cept 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 suc-
     cessful.  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_set-
	 sockopt(3)) has been reached (flag ZMQ_DONTWAIT not set) without  being
	 able  to read a message from the socket or there are no messages avail-
	 able 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 mo-
	 ment 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.5			   10/09/2023			     ZMQ_RECV(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=zmq_recv&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help