サーバの書き換え(独立して動くサーバ) address family/wildcard addressをgetaddrinfo()で得る AI_PASSIVEでwildcard sockaddrを得る アドレスファミリは前もってわからないので、先にgetaddrinfo() 返ってきた全てのaddrinfoについて以下をトライ(エラーが出ても無視) カーネルにIPv6サポートがないかもしれない カーネルにIPv6の設定が入っていないかもしれない カーネルがbind(2)の順序に制約をつけているかもしれない 複数socketを扱うのでselect(2)やpoll(2)をしないといけないかも 一個もsocketを開けられなかったらエラー inetdに起動されるサーバなら簡単(ここでは略す)