git-subtree-dir: external/nng git-subtree-split: 29b73962b939a6fbbf6ea8d5d7680bb06d0eeb99
80 lines
2.6 KiB
Text
80 lines
2.6 KiB
Text
= nng_stream(5)
|
|
//
|
|
// Copyright 2020 Staysail Systems, Inc. <info@staysail.tech>
|
|
// Copyright 2018 Capitar IT Group BV <info@capitar.com>
|
|
// Copyright 2019 Devolutions <info@devolutions.net>
|
|
//
|
|
// This document is supplied under the terms of the MIT License, a
|
|
// copy of which should be located in the distribution where this
|
|
// file was obtained (LICENSE.txt). A copy of the license may also be
|
|
// found online at https://opensource.org/licenses/MIT.
|
|
//
|
|
|
|
== NAME
|
|
|
|
nng_stream - byte stream
|
|
|
|
== SYNOPSIS
|
|
|
|
[source, c]
|
|
----
|
|
#include <nng/nng.h>
|
|
|
|
typedef struct nng_stream nng_stream;
|
|
----
|
|
|
|
== DESCRIPTION
|
|
|
|
An `nng_stream` (((byte stream))) represents a byte stream.
|
|
This may correspond to an underlying connection such a TCP connection or
|
|
a connected UNIX domain socket or named pipe.
|
|
|
|
NOTE: The `nng_stream` object is used for raw byte stream connections, and
|
|
should not be confused with a pipe object created on
|
|
xref:nng_socket.5.adoc[socket] using the
|
|
xref:nng_listen.3.adoc[`nng_listen()`],
|
|
xref:nng_dial.3.adoc[`nng_dial()`] or related functions.
|
|
|
|
These objects are created either establishing an outgoing connection
|
|
with
|
|
xref:nng_stream_dialer_dial.3str.adoc[`nng_stream_dialer_dial()`]
|
|
or by accepting in incoming connection with
|
|
xref:nng_stream_listener_accept.3str.adoc[`nng_stream_listener_accept()`].
|
|
|
|
Byte streams are reliable in that data
|
|
will not be delivered out of order, or with portions missing.
|
|
|
|
Data can be sent using
|
|
xref:nng_stream_send.3str.adoc[`nng_stream_send()`] or
|
|
received with
|
|
xref:nng_stream_recv.3str.adoc[`nng_stream_recv()`].
|
|
|
|
When the connection is no longer needed, it should be freed with
|
|
xref:nng_stream_free.3str.adoc[`nng_stream_free()`].
|
|
|
|
TIP: It is possible to close the connection, without freeing it, by
|
|
using
|
|
xref:nng_stream_close.3str.adoc[`nng_stream_close()`].
|
|
|
|
Byte streams may, depending on the underlying technology,
|
|
support various
|
|
xref:nng_options.5.adoc[options], which
|
|
can be accessed using the
|
|
xref:nng_stream_get.3str.adoc[`nng_stream_get()`] and
|
|
xref:nng_stream_set.3str.adoc[`nng_stream_set()`] family of
|
|
functions.
|
|
|
|
== SEE ALSO
|
|
|
|
[.text-left]
|
|
xref:libnng.3.adoc[libnng(3)],
|
|
xref:nng_stream_close.3str.adoc[nng_stream_close(3str)],
|
|
xref:nng_stream_dialer_dial.3str.adoc[nng_stream_dialer_dial(3str)],
|
|
xref:nng_stream_free.3str.adoc[nng_stream_free(3str)],
|
|
xref:nng_stream_get.3str.adoc[nng_stream_get(3str)],
|
|
xref:nng_stream_listener_accept.3str.adoc[nng_stream_listener_accept(3str)],
|
|
xref:nng_stream_recv.3str.adoc[nng_stream_recv(3str)],
|
|
xref:nng_stream_send.3str.adoc[nng_stream_send(3str)],
|
|
xref:nng_stream_set.3str.adoc[nng_stream_set(3str)],
|
|
xref:nng_options.5.adoc[nng_options(5)],
|
|
xref:nng.7.adoc[nng(7)],
|