table of contents
NNG_SENDMSG(3) | NNG Reference Manual | NNG_SENDMSG(3) |
NAME¶
nng_sendmsg - send message
SYNOPSIS¶
#include <nng/nng.h> int nng_sendmsg(nng_socket s, nng_msg *msg, int flags);
DESCRIPTION¶
The nng_sendmsg() sends message msg using the socket s.
If the function returns zero, indicating it has accepted the message for delivery, then the msg is owned by the socket s, and the caller must not make any further use of it. The socket will free the message when it is finished.
If the function returns non-zero, then it is the caller’s responsibility to dispose of the msg, which may include freeing it, sending it to another socket, or simply trying again later.
Tip
Using this function gives access to the message structure, and may
offer more functionality than the simpler nng_send()
function.
Note
The semantics of what sending a message means vary from protocol
to
protocol, so examination of the protocol documentation is encouraged. (For
example, with a pub socket the data is broadcast, so that any peers
who have a suitable subscription will be able to receive it using
nng_recv() or a similar function.) Furthermore, some
protocols may not support sending (such as sub) or may require other
conditions. (For example, rep sockets cannot normally send data,
which are responses to requests, until they have first received a
request.)
The flags may contain the following value:
NNG_FLAG_NONBLOCK
Note
Regardless of the presence or absence of
NNG_FLAG_NONBLOCK, there may
be queues between the sender and the receiver. Furthermore, there is no
guarantee that the message has actually been delivered. Finally, with some
protocols, the semantic is implicitly
NNG_FLAG_NONBLOCK, such as with pub sockets,
which are best-effort delivery only.
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_msg_alloc(3), nng_recvmsg(3), nng_send(3), nng_strerror(3), nng_msg(5), nng_socket(5), nng(7)
2024-10-11 |