0

C では、関数 inet_pton() は IP アドレスのみを printble から文字列形式に変換しますか、それとも IP アドレスとポート番号も変換しますか? つまり、ABCD が IP で E がポート番号である形式 ABCD:E の文字列がある場合、同じものに inet_pton を使用できるでしょうか?

4

3 に答える 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_addrdstでなければなりません。sizeof(struct in_addr)

于 2013-01-25T15:42:50.230 に答える
1

getaddrinfo()アドレス変換のスイスナイフを使用してください。

于 2013-01-25T16:09:39.830 に答える