# nng_stream_dialer_alloc(3str) Manual Page

## NAME

nng_stream_dialer_alloc - allocate byte stream dialer

## SYNOPSIS

    #include <nng/nng.h>

    int nng_stream_dialer_alloc(nng_stream_dialer **dp, const char *addr);

    int nng_stream_dialer_alloc_url(nng_stream_dialer **dp, const nng_url *url);

## DESCRIPTION

These functions allocates a dialer for byte streams. Dialers create `nng_stream` objects by initiating outgoing connections, via the `nng_stream_dialer_dial()` function.

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

The second form, `nng_stream_dialer_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 dialer in the location referenced by dp.

## 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_dialer_close(3str) nng_stream_dialer_dial(3str) nng_stream_dialer_free(3str) nng_stream_dialer_get(3str) nng_stream_dialer_set(3str) nng_stream_dialer(5)