Rewriting server side (standalone) Query address family/wildcard address by getaddrinfo() Use AI_PASSIVE to get wildcard sockaddr We don't know address family, so need to resolve name before socket() Try all returned addrinfo, ignore errors until we reach the end Kernel may not have IPv6 support Kernel may not be configured with IPv4/v6 Kernel may be imposing ordering constraint between bind(2) May need to introduce select(2) or poll(2) inetd case is much easier (omitted)