= nng_socket(7) // // Copyright 2024 Staysail Systems, Inc. // // 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_socket - BSD Socket transport (experimental) == DESCRIPTION (((BSD Socket)))(((transport, _socket_))) The ((_socket_ transport)) supports communication between peers across arbitrary BSD sockets, such as those that are created with xref:nng_socket_pair.3supp.adoc[`nng_socket_pair()`]. This transport only supports xref:nng_listener.5.adoc[listeners], using xref:nng_listener_create.3.adoc[`nng_listener_create()`]. NOTE: Attempts to create xref:nng_dialer.5.adoc[dialers] using this transport will result in `NNG_ENOTSUP`. The socket file descriptor is passed to the listener using the `NNG_OPT_SOCKET_FD` option (as an integer). Setting this option will cause the listener to create a xref:nng_pipe.5.adoc[pipe] associated backed by the file descriptor. The protocol between peers using this transport is compatible with the protocol used for the xref:nng_tcp.7.adoc[TCP] transport, but this is an implementation detail and subject to change without notice. NOTE: This transport is *experimental*, and at present is only supported on POSIX platforms. === Registration No special action is necessary to register this transport. === URI Format (((URI, `socket://`))) This transport uses the URL `socket://`, without further qualification. === Socket Address The socket address will be of family `NNG_AF_UNSPEC`. There are no further socket details available. === Transport Options The following transport option is available: ((`NNG_OPT_SOCKET_FD`)):: (int) This is a write-only option, that may be set multiple times on a listener. Each time this is set, the listener will create a xref:nng_pipe.5.adoc[pipe] backed by the given file descriptor passed as an argument. Additionally, the following options may be supported on pipes when the platform supports them: * xref:nng_options.5.adoc#NNG_OPT_PEER_GID[`NNG_OPT_PEER_GID`] * xref:nng_options.5.adoc#NNG_OPT_PEER_PID[`NNG_OPT_PEER_PID`] * xref:nng_options.5.adoc#NNG_OPT_PEER_UID[`NNG_OPT_PEER_UID`] * xref:nng_options.5.adoc#NNG_OPT_PEER_ZONEID[`NNG_OPT_PEER_ZONEID`] == SEE ALSO [.text-left] xref:nng_socket_pair.3supp.adoc[nng_socket_pair(3)], xref:nng_dialer.5.adoc[nng_dialer(5)], xref:nng_listener.5.adoc[nng_listener(5)], xref:nng_options.5.adoc[nng_options(5)], xref:nng_pipe.5.adoc[nng_pipe(5)], xref:nng_sockaddr.5.adoc[nng_sockaddr(5)], xref:nng.7.adoc[nng(7)]