Rules of thumb - outline Use sockaddrs, don't use in_addr/in6_addr data structure needs to carry address family Address family independent hostname lookups getaddrinfo/getnameinfo Reorder socket/connect/bind socket() can be done only after name resolution