#include <nng/nng.h>
int nng_ctx_recvmsg(nng_ctx ctx, nng_msg **msgp, int flags);
| This documentation is for version v1.6.0 of NNG, but the latest released version is v1.10.0. see the documentation for v1.10.0 for the most up-to-date information. | 
nng_ctx_recvmsg(3)
NAME
nng_ctx_recvmsg - receive message using socket
SYNOPSIS
DESCRIPTION
The nng_ctx_recvmsg() receives a message on context ctx, storing the
received message at the location pointed to by msgp.
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 receivable on the context ctx, 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. | 
RETURN VALUES
This function returns 0 on success, and non-zero otherwise.
ERRORS
NNG_EAGAIN
 | 
 The operation would block, but   | 
NNG_ECLOSED
 | 
 The context or socket is not open.  | 
NNG_EINVAL
 | 
 An invalid set of flags was specified.  | 
NNG_ENOMEM
 | 
 Insufficient memory is available.  | 
NNG_ENOTSUP
 | 
 The protocol does not support receiving.  | 
NNG_ESTATE
 | 
 The context cannot receive data in this state.  | 
NNG_ETIMEDOUT
 | 
 The operation timed out.  |