This documentation is for the TIP (development tree) of NNG and may represent unreleased changes or functionality that is experimental, and is subject to change before release. The latest released version is v1.8.0. See the documentation for v1.8.0 for the most up-to-date information.

nng_sockaddr(5)

NAME

nng_sockaddr - socket address

SYNOPSIS

#include <nng/nng.h>

typedef union nng_sockaddr {
    uint16_t              s_family;
    nng_sockaddr_ipc      s_ipc;
    nng_sockaddr_inproc   s_inproc;
    nng_sockaddr_in       s_in;
    nng_sockaddr_in6      s_in6;
    nng_sockaddr_zt       s_zt;
    nng_sockaddr_abstract s_abstract;
} nng_sockaddr;

enum sockaddr_family {
    NNG_AF_UNSPEC   = 0,
    NNG_AF_INPROC   = 1,
    NNG_AF_IPC      = 2,
    NNG_AF_INET     = 3,
    NNG_AF_INET6    = 4,
    NNG_AF_ZT       = 5,
    NNG_AF_ABSTRACT = 6
};

DESCRIPTION

An nng_sockaddr is a structure used for representing the addresses used by underlying transports, such as TCP/IP addresses, IPC paths, and so forth.

The name sockaddr is based on its similarity with POSIX struct sockaddr, but in NNG, these addresses are more closely affiliated with instances of nng_pipe than of nng_socket. The naming confusion is unfortunate.

This structure is actually a union, with different members for different types of addresses.

Every member structure has as its first element a uint16_t field containing the address family. This overlaps the s_family member of the union, and indicates which specific member should be used.

The values of s_family are as follows:

NNG_AF_UNSPEC

Invalid address, no other valid fields.

NNG_AF_INPROC

Address for intraprocess communication (nng_inproc(7)). The s_inproc member is valid.

NNG_AF_IPC

Address for interprocess communication (nng_ipc(7)). The s_path member is valid.

NNG_AF_INET

Address for TCP/IP (v4) communication. The s_in member is valid.

NNG_AF_INET6

Address for TCP/IP (v6) communication. The s_in6 member is valid.

NNG_AF_ZT

Address for ZeroTier transport (nng_zerotier(7)). The s_zt member is valid.

NNG_AF_ABSTRACT

Address for an abstract UNIX domain socket. The s_abstract member is valid.

Please see the manual pages for each individual type for more information.

SEE ALSO