ネットワークプログラムに出で来るin_addr構造体についてですが,
この構造体に入れるIPアドレスはどんな場合も,
IPアドレスをバイナリ値で渡すべきなんでしょうか?
192.168.0.10の値を渡すことはいけませんか?
よろしくお願いします。
struct in_addr {
union {
struct { u_char s_b1, s_b2, s_b3, s_b4; } S_un_b;
struct { u_short s_w1, s_w2; } S_un_w;
u_long S_addr;
} S_un;
#define s_addr S_un.S_addr;
#define s_host S_un.S_un_b.s_b2
#define s_net S_un.S_un_b.s_b1
#define s_imp S_un.S_un_b.s_w2
#define s_impno S_un.S_un_b.s_b4
#define s_lh S_un.S_un_b.s_b3
};
> ネットワークプログラムに出で来るin_addr構造体についてですが,
> この構造体に入れるIPアドレスはどんな場合も,
> IPアドレスをバイナリ値で渡すべきなんでしょうか?
> 192.168.0.10の値を渡すことはいけませんか?
「192.168.0.10の値」というのは
192.168.0.10ですか?
0x0a00a8c0(inet_addr(192.168.0.10)で得られるunsigned long値)ですか?
回答ありがとうございます。
in_addr構造体に「ドット付き10進数」のIPアドレスを直接渡すことはできるのか?
ということです。
いろいろ探したんですがはっきり記述されている所が見つかりませんでした。
よろしくお願いします。
質問の意図が伝わらなかったようなのでもう一度…
『「ドット付き10進数」のIPアドレス』というのは
192.168.0.10のように文字列ですか?
もしそうであれば、構造体のメンバにポインタがないのですから無理でしょう。
また、IPのパケットヘッダを生成する際にバイナリ(というか32ビット)のフィールドが必
要ですので、
どこかで変換する必要があります。
どうも回答ありがとうございます。
初心者なもので助かりました。
ドット付き10進数は,192.334.0.55の文字列のことです。
ただネットで見つけた言葉なのでこの解釈で良いのか自信はありませんが。
丁寧に教えていただきありがとうございます。
解決。