table of contents
NNG_RECV(3) | NNG Reference Manual | NNG_RECV(3) |
NAME¶
nng_recv - recv data
SYNOPSIS¶
#include <nng/nng.h> int nng_recv(nng_socket s, void *data, size_t *sizep, int flags);
DESCRIPTION¶
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.
Note
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.
Tip
The NNG_FLAG_ALLOC flag can be used to
reduce data copies, thereby
increasing performance, particularly if the buffer is reused to send a
response using the same flag.
RETURN VALUES¶
This function returns 0 on success, and non-zero otherwise.
ERRORS¶
NNG_EAGAIN
NNG_ECLOSED
NNG_EINVAL
NNG_EMSGSIZE
NNG_ENOMEM
NNG_ENOTSUP
NNG_ESTATE
NNG_ETIMEDOUT
SEE ALSO¶
nng_alloc(3), nng_free(3), nng_recvmsg(3), nng_send(3), nng_strerror(3), nng(7)
2024-05-31 |