NNG_SOCKADDR(5) | NNG Reference Manual | NNG_SOCKADDR(5) |
nng_sockaddr - socket address
#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 };
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
NNG_AF_INPROC
NNG_AF_IPC
NNG_AF_INET
NNG_AF_INET6
NNG_AF_ZT
NNG_AF_ABSTRACT
Please see the manual pages for each individual type for more information.
nng_sockaddr_abstract(5), nng_sockaddr_in(5), nng_sockaddr_in6(5), nng_sockaddr_inproc(5), nng_sockaddr_ipc(5), nng_sockaddr_zt(5), nng(7)
2025-01-05 |