WinSock – プログラミング – Home

通知
すべてクリア

[解決済] WinSock


veloctiy
 veloctiy
(@veloctiy)
ゲスト
結合: 17年前
投稿: 4
Topic starter  

ネットワークプログラムに出で来る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
};


引用未解決
トピックタグ
瀬戸っぷ
 瀬戸っぷ
(@瀬戸っぷ)
ゲスト
結合: 18年前
投稿: 178
 

> ネットワークプログラムに出で来る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値)ですか?


返信引用
veloctiy
 veloctiy
(@veloctiy)
ゲスト
結合: 17年前
投稿: 4
Topic starter  

回答ありがとうございます。
in_addr構造体に「ドット付き10進数」のIPアドレスを直接渡すことはできるのか?
ということです。
いろいろ探したんですがはっきり記述されている所が見つかりませんでした。
よろしくお願いします。


返信引用
瀬戸っぷ
 瀬戸っぷ
(@瀬戸っぷ)
ゲスト
結合: 18年前
投稿: 178
 

質問の意図が伝わらなかったようなのでもう一度…

『「ドット付き10進数」のIPアドレス』というのは
192.168.0.10のように文字列ですか?
もしそうであれば、構造体のメンバにポインタがないのですから無理でしょう。
また、IPのパケットヘッダを生成する際にバイナリ(というか32ビット)のフィールドが必
要ですので、
どこかで変換する必要があります。


返信引用
veloctiy
 veloctiy
(@veloctiy)
ゲスト
結合: 17年前
投稿: 4
Topic starter  

どうも回答ありがとうございます。
初心者なもので助かりました。
ドット付き10進数は,192.334.0.55の文字列のことです。
ただネットで見つけた言葉なのでこの解釈で良いのか自信はありませんが。
丁寧に教えていただきありがとうございます。


返信引用
veloctiy
 veloctiy
(@veloctiy)
ゲスト
結合: 17年前
投稿: 4
Topic starter  

解決。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました