怎么计算UDP的广播地址

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;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值