帮忙看一下这个判断语句是什么意思!
if ((sockStruct.sin_addr.S_un.S_addr = inet_addr(ip))==INADDR_NONE)
{
....
}
inet_addr返回将一个点式ip转成的无符长整数,然后赋值给结构体的变量,这样的赋值语句的返回值是什么意思
问题点数:30、回复次数:8Top
1 楼drift1981(delphi coder)回复于 2004-12-04 15:10:32 得分 0
upTop
2 楼HunterForPig(留着口水的猪)回复于 2004-12-04 15:13:13 得分 5
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; //long类型与inet_addr一致
} S_un;
};
联合体只去一个。。。。:)Top
3 楼EnochShen(小疯子:真的好菜—知耻而后勇!)回复于 2004-12-04 15:14:09 得分 5
如果inet_addr的IP是无效的话
{
。。。
}Top
4 楼HunterForPig(留着口水的猪)回复于 2004-12-04 15:16:37 得分 5
INADDR_NONE表示ip无效。。。。
即inet_addr的返回值==无效ipTop
5 楼drift1981(delphi coder)回复于 2004-12-04 15:20:31 得分 0
unsigned long inet_addr (
const char *cp );
不明白inet_addr 的返回值是unsigned long ,怎么会又会返回INADDR_NONETop
6 楼oyljerry(【勇敢的心】→ ㊣提拉米苏√㊣)回复于 2004-12-04 15:34:08 得分 5
INADDR_NONE
是比较后的结果Top
7 楼bobob(静思)回复于 2004-12-04 15:47:03 得分 0
先赋值,后比较Top
8 楼Fashionxu()回复于 2004-12-04 15:51:32 得分 10
第一步:
inet_addr(ip),把ip转换成unsiged long
第二步:
sockStruct.sin_addr.S_un.S_addr = inet_addr(ip)
将这个值赋给前面的变量。
可能有这种情况:inet_addr(266.266.266.2696),虽然也转化了,但是肯定不对,对吧?
第三步:
就是判断转化的值是否是合适的了,就是下面的啦。
if ((sockStruct.sin_addr.S_un.S_addr = inet_addr(ip))==INADDR_NONE)
Top




