SYNOPSIS
#include <nng/nng.h>
int nng_recvmsg(nng_socket s, nng_msg **msgp, int flags);
DESCRIPTION
The nng_recvmsg() receives a message on socket s, storing the
received message at the location pointed to by msgp.
| Using this function gives access to the message structure, and thus may offer more functionality than the simpler nng_recv(3) function. |
The flags may contain the following value:
NNG_FLAG_NONBLOCK-
The function returns immediately, even if no message is available. Without this flag, the function will wait until a message is received by the socket s, or any configured timer expires.
| The semantics of what receiving a message means vary from protocol to protocol, so examination of the protocol documentation is encouraged. (For example, with an nng_req(7) socket a message may only be received after a request has been sent, and an nng_sub(7) socket may only receive messages corresponding to topics to which it has subscribed.) Furthermore, some protocols may not support receiving data at all, such as nng_pub(7). |
RETURN VALUES
This function returns 0 on success, and non-zero otherwise.
ERRORS
NNG_EAGAIN-
The socket s cannot accept data for sending.
NNG_ECLOSED-
The socket s is not open.
NNG_EINVAL-
An invalid set of flags was specified.
NNG_ENOMEM-
Insufficient memory is available.
NNG_ENOTSUP-
The protocol for socket s does not support receiving.
NNG_ESTATE-
The socket s cannot receive data in this state.