NNG_RECV(3) | NNG Reference Manual | NNG_RECV(3) |
nng_recv - recv data
#include <nng/nng.h> int nng_recv(nng_socket s, void *data, size_t *sizep, int flags);
The nng_recv() receives a message.
The flags is a bit mask that may contain any of the following values:
NNG_FLAG_NONBLOCK
NNG_FLAG_ALLOC
If the special flag NNG_FLAG_ALLOC (see above) is not specified, then the caller must set data to a buffer to receive the message body content, and must store the size of that buffer at the location pointed to by sizep. When the function returns, if it is successful, the size at sizep will be updated with the actual message body length copied into data.
The NNG_FLAG_ALLOC flag is deprecated and
may be removed in a future release.
Applications should use nng_recvmsg() for zero copy
performance improvements.
The semantics of what receiving a message means vary from protocol
to
protocol, so examination of the protocol documentation is encouraged. (For
example, with a req socket a message may only be received after a
request has been sent, and a sub 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 pub.
This function returns 0 on success, and non-zero otherwise.
NNG_EAGAIN
NNG_ECLOSED
NNG_EINVAL
NNG_EMSGSIZE
NNG_ENOMEM
NNG_ENOTSUP
NNG_ESTATE
NNG_ETIMEDOUT
nng_alloc(3), nng_free(3), nng_recvmsg(3), nng_send(3), nng_strerror(3), nng(7)
2025-01-05 |