In the Internet namespace, for both IPv4 (AF_INET) and IPv6
(AF_INET6), a socket address consists of a host address
and a port on that host. In addition, the protocol you choose serves
effectively as a part of the address because local port numbers are
meaningful only within a particular protocol.
The data types for representing socket addresses in the Internet namespace
are defined in the header file netinet/in.h.
— Data Type: struct sockaddr_in
This is the data type used to represent socket addresses in the
Internet namespace. It has the following members:
sa_family_t sin_family
This identifies the address family or format of the socket address.
You should store the value AF_INET in this member.
See Socket Addresses.
struct in_addr sin_addr
This is the Internet address of the host machine. See Host Addresses, and Host Names, for how to get a value to store
here.
When you call bind or getsockname, you should specify
sizeof (struct sockaddr_in) as the length parameter if
you are using an IPv4 Internet namespace socket address.
— Data Type: struct sockaddr_in6
This is the data type used to represent socket addresses in the IPv6
namespace. It has the following members:
sa_family_t sin6_family
This identifies the address family or format of the socket address.
You should store the value of AF_INET6 in this member.
See Socket Addresses.
struct in6_addr sin6_addr
This is the IPv6 address of the host machine. See Host Addresses, and Host Names, for how to get a value to store
here.