关于组播,和广播的问题!

firewing 2001-08-22 11:14:15
加精
如果我的程序是运作在Windows下面,我如何得到我的组播地址(如何计算)?下面的客户机如何向组播地址注册自己的ip?如何注销自己的IP?
广播的时候计算广播地址需要知道该子网的子网掩码?如何得到该子网的子网掩码(通过函数,非人工手动获得)?
...全文
158 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
bnwxf 2001-08-23
  • 打赏
  • 举报
回复
DWORD GetNetworkParams(
PFIXED_INFO pFixedInfo, // pointer to buffer to receive data
PULONG pOutBufLen // size of buffer
);

pFixedInfo->DnsServerList->IpMask
firewing 2001-08-22
  • 打赏
  • 举报
回复
小鱼儿!好像有点不对吧!广播地址跟组播地址你有没有搞混啊?
同一个子网内,主机号全为1的才是该子网的广播地址吧!
组播地址是D类地址呢!
bluesurf 2001-08-22
  • 打赏
  • 举报
回复
platform sdk->ip helper
adamjun 2001-08-22
  • 打赏
  • 举报
回复
广播地址是IP地址全为“1”的,所以不用知道子网的子网掩码,组播的IP地址是网络号不变,主机号全为“1”,所以要知道子网掩码才能知道怎么样写组播地址。
客户向组播地址注册自己的IP时最好把子网掩码一起提交。
firewing 2001-08-22
  • 打赏
  • 举报
回复
如何得到指定网卡的子网掩码呢?
bnwxf 2001-08-22
  • 打赏
  • 举报
回复
组播地址好像不是计算出来的,如果在局域网内,尽管用(只要不用224。0。0。0/24就可以)
加入组播实际上是让网卡加一个过滤网,目的地址与此相同的统统放进。也可以说,一台主机加入某个组,等于它多了一个ip地址(d类)。
一个例子:
winsock1的函数 setsockopt
标志: IP_ADD_MEMBERSHIP, IP_DROP_MEMBERSHIP
关键的结构:
struct ip_mreq
{
struct in_addr imr_multiaddr; // d类地址,比如,inet_addr("234.5.6.7")
struct in_addr imr_interface; // 一般用INADDR_ANY

}
setsockopt(s, IPPPROTO_IP, IP_ADD_MEMBERSHIP, (char *) &ipmr, &len);
离开
setsockopt(s, IPPROTO_IP, IP_DROP_MEMBERSHIP, (char*) &ipmr, &len);

4,356

社区成员

发帖
与我相关
我的任务
社区描述
通信技术相关讨论
社区管理员
  • 网络通信
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧