Node:Internet Address Formats, Next:, Up:Internet Namespace



Internet Socket Address Formats

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.

struct sockaddr_in Data Type
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.
unsigned short int sin_port
This is the port number. See Ports.

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.

struct sockaddr_in6 Data Type
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.
uint32_t sin6_flowinfo
This is a currently unimplemented field.
uint16_t sin6_port
This is the port number. See Ports.