C では、関数 inet_pton() は IP アドレスのみを printble から文字列形式に変換しますか、それとも IP アドレスとポート番号も変換しますか? つまり、ABCD が IP で E がポート番号である形式 ABCD:E の文字列がある場合、同じものに inet_pton を使用できるでしょうか?
1736 次
3 に答える
3
ポート番号は自分で分割する必要があります。これは、アドレスが ipv4 か ipv6 かによって方法が異なるため、かなり問題があります。この問題が、多くの UNIX ユーティリティが構文-p
ではなくオプションを使用してポートを指定する理由だと思います。:port
于 2013-01-25T15:58:54.183 に答える
3
いいえ、ポート番号は扱いません。man ページでは、IPv4 アドレスに期待される内容を正確に指定しています。
src
ドット付き 10 進形式の IPv4 ネットワーク アドレスを含む文字列「ddd.ddd.ddd.ddd」を指します。ここで、ddd は 0 ~ 255 の範囲の最大 3 桁の 10 進数です。アドレスはこれは(4) バイト (32 ビット) の長struct in_addr
さdst
でなければなりません。sizeof(struct in_addr)
于 2013-01-25T15:42:50.230 に答える
1
getaddrinfo()
アドレス変換のスイスナイフを使用してください。
于 2013-01-25T16:09:39.830 に答える