UDP广播地址

一、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;

二、需要注意的问题
UDP广播之后,发送方的IP也会接收到广播的信息,这就需要做一定的处理,处理可以参考一下几种方式:
1.将自己收到的数据报的IP本地的IP进行比较
2.采用不同的端口接收
3.可以使用多播的方式

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值