This documentation is for the TIP (development tree) of NNG and may represent unreleased changes or functionality that is experimental, and is subject to change before release. The latest released version is v1.3.2. See the documentation for v1.3.2 for the most up-to-date information.



nng_stream - byte stream


#include <nng/nng.h>

typedef struct nng_stream nng_stream;


An nng_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.

The nng_stream object is used for raw byte stream connections, and should not be confused with a pipe object created on socket using the nng_listen(), nng_dial() or related functions.

These objects are created either establishing an outgoing connection with nng_stream_dialer_dial() or by accepting in incoming connection with 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 nng_stream_send() or received with nng_stream_recv().

When the connection is no longer needed, it should be freed with nng_stream_free().

It is possible to close the connection, without freeing it, by using nng_stream_close().

Byte streams may, depending on the underlying technology, support various options, which can be accessed using the nng_stream_get() and nng_stream_set() family of functions.