= nng_listener_create(3) // // Copyright 2018 Staysail Systems, Inc. // Copyright 2018 Capitar IT Group BV // // 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_listener_create - create listener == SYNOPSIS [source, c] ---- #include int nng_listener_create(nng_listener *listenerp, nng_socket s, const char *url); ---- == DESCRIPTION The `nng_listener_create()` function creates a newly initialized xref:nng_listener.5.adoc[`nng_listener`] object, associated with socket _s_, and configured to listen at the address specified by _url_, and stores a pointer to at the location referenced by _listenerp_. Listeners are used to accept connections initiated by remote dialers. An incoming connection generally results in a pipe being created and attached to the socket _s_. Unlike dialers, listeners generally can create many pipes, which may be open concurrently. TIP: While it is convenient to think of listeners as "`servers`", the relationship between the listener or dialer is orthogonal to any server or client status that might be associated with a given protocol. For example, a xref:nng_req.7.adoc[_req_] socket might have associated dialers, but might also have associated listeners. It may even have some of each at the same time! The listener is not started, but may be further configured with the xref:nng_listener_setopt.3.adoc[`nng_listener_setopt()`] family of functions. Once it is fully configured, the listener may be started using the xref:nng_listener_start.3.adoc[`nng_listener_start()`] function. TIP: If no specific configuration is required, consider using the simpler xref:nng_listen.3.adoc[`nng_listen()`] function instead. == RETURN VALUES This function returns 0 on success, and non-zero otherwise. == ERRORS [horizontal] `NNG_EADDRINVAL`:: An invalid _url_ was specified. `NNG_ECLOSED`:: The socket _s_ is not open. `NNG_ENOMEM`:: Insufficient memory is available. == SEE ALSO [.text-left] xref:nng_dialer_create.3.adoc[nng_dialer_create(3)] xref:nng_listen.3.adoc[nng_listen(3)], xref:nng_listener_close.3.adoc[nng_listener_close(3)], xref:nng_listener_getopt.3.adoc[nng_listener_getopt(3)], xref:nng_listener_setopt.3.adoc[nng_listener_setopt(3)], xref:nng_listener_start.3.adoc[nng_listener_start(3)], xref:nng_strerror.3.adoc[nng_strerror(3)], xref:nng_listener.5.adoc[nng_listener(5)], xref:nng.7.adoc[nng(7)]