blob: 028ad9e6b6a308404ab3f7467bcee6f376673bd7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
# nng_ctx_recvmsg
## NAME
nng_ctx_recvmsg --- receive message using socket
## SYNOPSIS
```c
#include <nng/nng.h>
int nng_ctx_recvmsg(nng_ctx ctx, nng_msg **msgp, int flags);
```
## DESCRIPTION
The `nng_ctx_recvmsg()` receives a message on [context][context] _ctx_, storing the
received [message][msg] at the location pointed to by _msgp_.
The _flags_ may contain the following value:
- {{i:`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.
> [!TIP]
> 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_FLAG_NONBLOCK` was specified.
- `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.
## SEE ALSO
[nng_msg_free][nng_msg_free],
[nng_ctx_open][nng_ctx_open],
[nng_ctx_recv][nng_ctx_recv],
[nng_ctx_sendmsg][nng_ctx_sendmsg],
[Messages][msg]
{{#include ../refs.md}}
|