您的位置:首页 > 其它

怎么计算UDP的广播地址

2015-11-24 11:08 190 查看
winsock.h和winsock2.h中都定义了几个特殊的地址:
#define INADDR_ANY 0x00000000
#define INADDR_LOOPBACK 0x7F000001
#define INADDR_BROADCAST 0xFFFFFFFF
#define INADDR_NONE 0xFFFFFFFF

别看到BROADCAST这个词就以为它是广播地址了。广播地址是由IP地址和子网掩码(两者都是4字节)计算出来的。子网掩码的二进制形式是高N位1和低(32-N)位0。IP地址与子网掩码进行按位与操作后得到网络号,网络号相同的IP地址认为在同一网段。
比如对于子网掩码255.255.255.0, 192.168.1.2和192.168.1.3属于同一网段,他们的网络号是192.168.1.0。而他们和192.168.0.4就不属于同一网段,因为后者的网络号为192.168.0.0。但是对于子网掩码255.255.254.0,这三者属于同一网段,他们的网络号为192.168.0.0。
子网掩码的所有位取反后,与网络号进行同或操作,就是广播地址了。所以广播地址B与IP地址I,子网掩码M的关系为:
B = (I & M)|~M;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: