struct in_addr{
union {
struct{
unsigned char s_b1,
s_b2,
s_b3, s_b4;
} S_un_b;
struct {
unsigned short s_w1, s_w2;
}S_un_w;
unsigned long S_addr;
}S_un;
};
其中S_un_w 和S_un是怎么存放ip地址的?
这是一个联合体。三个结构体S_un_b、S_un_w、S_un共用一个4字节内存区。
sin_addr.S_un.S_addr=(90<<24)|(25<<16)|(14<<8)|10=0x5a190e0a也就是ip地址10.14.25.90。
90存在最高字节,25存在次高字节,14存在次低字节,10存在最低字节;
也就是
sin_addr.S_un_b.s_b1=10,
sin_addr.S_un_b.s_b2=14,
sin_addr.S_un_b.s_b3=25,
sin_addr.S_un_b.s_b4=90,
也就是
sin_addr.S_un_w.s_w1=(14<<8)|10=3594,
sin_addr.S_un_w.s_w2=(90<<24)|(25<<16)=23065。
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息