summaryrefslogtreecommitdiff
path: root/man/v1.7.3/nng_sendmsg.3.html
diff options
context:
space:
mode:
authorStaysail Systems, Inc <info@staysail.tech>2024-03-01 07:04:14 -0800
committerGarrett D'Amore <garrett@damore.org>2024-03-01 07:07:37 -0800
commite4e646a6a9982ff932d83633157106a0b34975a2 (patch)
tree9ee71c33531a9592ba0c66ad97ceb10c42168519 /man/v1.7.3/nng_sendmsg.3.html
parent66e28ffa9fe663908539550bf104716c5b4dc213 (diff)
downloadnng-e4e646a6a9982ff932d83633157106a0b34975a2.tar.gz
nng-e4e646a6a9982ff932d83633157106a0b34975a2.tar.bz2
nng-e4e646a6a9982ff932d83633157106a0b34975a2.zip
Manual page updates for v1.7.3
Diffstat (limited to 'man/v1.7.3/nng_sendmsg.3.html')
-rw-r--r--man/v1.7.3/nng_sendmsg.3.html206
1 files changed, 206 insertions, 0 deletions
diff --git a/man/v1.7.3/nng_sendmsg.3.html b/man/v1.7.3/nng_sendmsg.3.html
new file mode 100644
index 00000000..bc5376d0
--- /dev/null
+++ b/man/v1.7.3/nng_sendmsg.3.html
@@ -0,0 +1,206 @@
+---
+version: v1.7.3
+layout: manpage_v2
+title: nng_sendmsg(3)
+---
+<h1>nng_sendmsg(3)</h1>
+<div class="sect1">
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>nng_sendmsg - send message</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span><span class="tok-w"> </span><span class="tok-cpf">&lt;nng/nng.h&gt;</span>
+
+<span class="tok-kt">int</span><span class="tok-w"> </span><span class="tok-nf">nng_sendmsg</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span><span class="tok-w"> </span><span class="tok-n">s</span><span class="tok-p">,</span><span class="tok-w"> </span><span class="tok-n">nng_msg</span><span class="tok-w"> </span><span class="tok-o">*</span><span class="tok-n">msg</span><span class="tok-p">,</span><span class="tok-w"> </span><span class="tok-kt">int</span><span class="tok-w"> </span><span class="tok-n">flags</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_sendmsg()</code> sends message <em>msg</em> using the socket <em>s</em>.</p>
+</div>
+<div class="paragraph">
+<p>If the function returns zero, indicating it has accepted the message for
+delivery, then the <em>msg</em> is owned by the socket <em>s</em>, and the caller
+must not make any further use of it.
+The socket will free the message when it is finished.</p>
+</div>
+<div class="paragraph">
+<p>If the function returns non-zero, then it is the caller&#8217;s responsibility
+to dispose of the <em>msg</em>, which may include freeing it, sending it to
+another socket, or simply trying again later.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+Using this function gives access to the message structure, and may
+offer more functionality than the simpler <a href="nng_send.3.html"><code>nng_send()</code></a> function.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+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 <a href="nng_pub.7.html"><em>pub</em></a> socket the data is broadcast, so that
+any peers who have a suitable subscription will be able to receive it using
+<a href="nng_recv.3.html"><code>nng_recv()</code></a> or a similar function.)
+Furthermore, some protocols may not support sending (such as
+<a href="nng_sub.7.html"><em>sub</em></a>) or may require other conditions.
+(For example, <a href="nng_rep.7.html"><em>rep</em></a> sockets cannot normally send data, which
+are responses to requests, until they have first received a request.)
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>The <em>flags</em> may contain the following value:</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>NNG_FLAG_NONBLOCK</code></dt>
+<dd>
+<p>The function returns immediately, regardless of whether
+the socket is able to accept the data or not.
+If the socket is unable to accept the data (such as if backpressure exists
+because the peers are consuming messages too slowly, or no peer is present),
+then the function will return with <code>NNG_EAGAIN</code>.
+If this flag is not specified, then the function will block if such a
+condition exists.</p>
+</dd>
+</dl>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+Regardless of the presence or absence of <code>NNG_FLAG_NONBLOCK</code>, 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 <code>NNG_FLAG_NONBLOCK</code>,
+such as with <a href="nng_pub.7.html"><em>pub</em></a> sockets, which are best-effort delivery only.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_EAGAIN</code>
+</td>
+<td class="hdlist2">
+<p>The operation would block, but <code>NNG_FLAG_NONBLOCK</code> was specified.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECLOSED</code>
+</td>
+<td class="hdlist2">
+<p>The socket <em>s</em> is not open.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EINVAL</code>
+</td>
+<td class="hdlist2">
+<p>An invalid set of <em>flags</em> was specified.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EMSGSIZE</code>
+</td>
+<td class="hdlist2">
+<p>The value of <em>size</em> is too large.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory is available.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>The protocol for socket <em>s</em> does not support sending.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ESTATE</code>
+</td>
+<td class="hdlist2">
+<p>The socket <em>s</em> cannot send data in this state.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ETIMEDOUT</code>
+</td>
+<td class="hdlist2">
+<p>The operation timed out.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_msg_alloc.3.html">nng_msg_alloc(3)</a>,
+<a href="nng_recvmsg.3.html">nng_recvmsg(3)</a>,
+<a href="nng_send.3.html">nng_send(3)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_msg.5.html">nng_msg(5)</a>,
+<a href="nng_socket.5.html">nng_socket(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>