The GNU C Library: Internet Address Formats

Next: , Up: Internet Namespace   [Contents][Index]


16.6.1 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.

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.

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.

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.

uint32_t sin6_flowinfo

This is a currently unimplemented field.

uint16_t sin6_port

This is the port number. See Ports.


Next: , Up: Internet Namespace   [Contents][Index]