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