Receives a message from socket s into buffers specified by msghdr parameter along with any additional control data. msghdr parameter should be nullified before being used.
Structure nn_msghdr contains at least following members:
struct nn_iovec *msg_iov;
msg_iov points to a gather array of buffers to fill in. msg_iovlen specifies the size of the array.
msg_control points to the buffer to hold control information associated with the received message. msg_controllen specifies the length of the buffer. If the control information should not be retrieved, set msg_control parameter to NULL. For detailed discussion of how to parse the control information check nn_cmsg(3) man page.
Structure nn_iovec defines one element in the gather array (a buffer to be filled in by message data) and contains following members:
Alternatively, nanomsg library can allocate the buffer for you. To do so, let the iov_base point to void* variable to receive the buffer and set iov_len to NN_MSG. After successful completion user is responsible for deallocating the message using nn_freemsg(3) function. Gather array in nn_msghdr structure can contain only one element in this case.
The flags argument is a combination of the flags defined below:
Specifies that the operation should be performed in non-blocking mode. If the message cannot be received straight away, the function will fail with
set to EAGAIN.