# nng_stream(5) Manual Page

## NAME

nng_stream - byte stream

## SYNOPSIS

    #include <nng/nng.h>

    typedef struct nng_stream nng_stream;

## DESCRIPTION

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.

## SEE ALSO

libnng(3), nng_stream_close(3str), nng_stream_dialer_dial(3str), nng_stream_free(3str), nng_stream_get(3str), nng_stream_listener_accept(3str), nng_stream_recv(3str), nng_stream_send(3str), nng_stream_set(3str), nng_options(5), nng(7),