#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
};
| This documentation is for version v1.6.0 of NNG, but the latest released version is v1.10.0. see the documentation for v1.10.0 for the most up-to-date information. | 
nng_sockaddr(5)
NAME
nng_sockaddr - socket address
SYNOPSIS
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.
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   | 
NNG_AF_IPC
 | 
 Address for interprocess communication (nng_ipc(7)).  The   | 
NNG_AF_INET
 | 
 Address for TCP/IP (v4) communication.  The   | 
NNG_AF_INET6
 | 
 Address for TCP/IP (v6) communication.  The   | 
NNG_AF_ZT
 | 
 Address for ZeroTier transport (nng_zerotier(7)).  The   | 
NNG_AF_ABSTRACT
 | 
 Address for an abstract UNIX domain socket.  The   | 
Please see the manual pages for each individual type for more information.