The IPv6 socket API for GNU/Linux aims to be mostly compatible
with the IPv4 API. In fact, if coding in an ``IPv6 aware'' style,
most programs should be IP version independent. The main socket
related system calls, such as socket(2), bind(2), listen(2)
and accept(2), are all IP version independent.
However, the sockaddr_in6 structure used to represent and IPv6
address is bigger than the generic sockaddr used for IPv4
addresses. One should therefore use the struct sockaddr_storage for IP address
storage if writing IP version independent code.