#include <nng/nng.h>
void nng_ctx_recv(nng_ctx ctx, nng_aio *aio);
| 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_recv(3)
NAME
nng_ctx_recv - receive message using context asynchronously
SYNOPSIS
DESCRIPTION
When a message is successfully received by the context, it is
stored in the aio by an internal call equivalent to
nng_aio_set_msg(), then the completion
callback on the aio is executed.
In this case, nng_aio_result() will
return zero.
The callback function is responsible for retrieving the message
and disposing of it appropriately.
| Failing to accept and dispose of messages in this case can lead to memory leaks. | 
If for some reason the asynchronous receive cannot be completed
successfully (including by being canceled or timing out), then
the callback will still be executed,
but nng_aio_result() will be non-zero.
| The semantics of what receiving a message means varies from protocol to protocol, so examination of the protocol documentation is encouraged. | 
RETURN VALUES
None. (The operation completes asynchronously.)
ERRORS
NNG_ECANCELED
 | 
 The operation was aborted.  | 
NNG_ECLOSED
 | 
 The context ctx is not open.  | 
NNG_ENOMEM
 | 
 Insufficient memory is available.  | 
NNG_ENOTSUP
 | 
 The protocol for context ctx does not support receiving.  | 
NNG_ESTATE
 | 
 The context ctx cannot receive data in this state.  | 
NNG_ETIMEDOUT
 | 
 The receive timeout expired.  |