Change every IP address storage to that IP address class. -The class itself is convertible to sockaddr_in or sockaddr_in6. However, byte-level compatibility may not be required. +The class itself should be convertible to sockaddr_in or sockaddr_in6. However, byte-level compatibility may not be required. So, we may have to_sockaddr_in6() function, instead of (sockaddr_in6*)&address.storage. It is not decided whether to have host byte order or network byte order. sockaddr_in always have network byte order in it.