# nng_stream_listener_alloc(3str) Manual Page

## NAME

nng_stream_listener_alloc - allocate byte stream listener

## SYNOPSIS

    #include <nng/nng.h>

    int nng_stream_listener_alloc(nng_stream_listener **lp, const char *addr);

    int nng_stream_listener_alloc_url(nng_stream_listener **lp, const nng_url *url);

## DESCRIPTION

These functions allocates a listener for byte streams. Listeners create `nng_stream` objects by accepting incoming connections, via the `nng_stream_listener_accept()` function.

The first form, `nng_stream_listener_alloc()`, connects to the address specified by addr, which should be a string representing a URL.

The second form, `nng_stream_listener_alloc_url()`, takes a pre-parsed or pre-constructed `nng_url` object to determine the remote address.

These functions may support different URL schemes, such as `ipc://`, `tcp://`, `tls+tcp://`, or `ws://`.

Both forms store the listener in the location referenced by lp.

## RETURN VALUES

These functions return 0 on success, and non-zero otherwise.

## ERRORS

`NNG_ENOMEM` | Insufficient free memory exists.
`NNG_ENOTSUP` | The URL scheme is not supported by the implementation.
`NNG_EADDRINVAL` | The URL requested is invalid.

## SEE ALSO

nng_strerror(3), nng_stream_listener_accept(3str) nng_stream_listener_close(3str) nng_stream_listener_free(3str) nng_stream_listener_get(3str) nng_stream_listener_listen(3str) nng_stream_listener_set(3str) nng_stream_listener(5)