因为性能上的洁癖,习惯于使用
来代替
in_addr ip;
ip.S_un.S_addr = info.ip;
|
表面上看,两者相差应该不大,但实际上,第一个是错的。
第一种方式其实是给 in_addr 的第一个成员赋值,而其实 in_addr 的第一个成员是 byte 而不是 unsigned long。结果就是只有一个 byte 被设置了,其他的 byte 被设置了 0。比如 127.0.0.1 显示出来是 127.0.0.0,这个恰恰又把问题变成了只有一个 byte 没有设置的问题。纠结。
看来此种方式还是要少用。
阅读(1382) | 评论(0) | 转发(0) |