关于组播,如果我的程序是运作在Windows下面,我如何得到我的组播地址(如何计算)?下面的客户机如何向组播地址注册自己的ip?如何注销自己的IP?广播的时候计算广播地址需要知道该子网的子
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/13 01:20:19
![关于组播,如果我的程序是运作在Windows下面,我如何得到我的组播地址(如何计算)?下面的客户机如何向组播地址注册自己的ip?如何注销自己的IP?广播的时候计算广播地址需要知道该子网的子](/uploads/image/z/11698307-35-7.jpg?t=%E5%85%B3%E4%BA%8E%E7%BB%84%E6%92%AD%2C%E5%A6%82%E6%9E%9C%E6%88%91%E7%9A%84%E7%A8%8B%E5%BA%8F%E6%98%AF%E8%BF%90%E4%BD%9C%E5%9C%A8Windows%E4%B8%8B%E9%9D%A2%2C%E6%88%91%E5%A6%82%E4%BD%95%E5%BE%97%E5%88%B0%E6%88%91%E7%9A%84%E7%BB%84%E6%92%AD%E5%9C%B0%E5%9D%80%EF%BC%88%E5%A6%82%E4%BD%95%E8%AE%A1%E7%AE%97%EF%BC%89%3F%E4%B8%8B%E9%9D%A2%E7%9A%84%E5%AE%A2%E6%88%B7%E6%9C%BA%E5%A6%82%E4%BD%95%E5%90%91%E7%BB%84%E6%92%AD%E5%9C%B0%E5%9D%80%E6%B3%A8%E5%86%8C%E8%87%AA%E5%B7%B1%E7%9A%84ip%3F%E5%A6%82%E4%BD%95%E6%B3%A8%E9%94%80%E8%87%AA%E5%B7%B1%E7%9A%84IP%3F%E5%B9%BF%E6%92%AD%E7%9A%84%E6%97%B6%E5%80%99%E8%AE%A1%E7%AE%97%E5%B9%BF%E6%92%AD%E5%9C%B0%E5%9D%80%E9%9C%80%E8%A6%81%E7%9F%A5%E9%81%93%E8%AF%A5%E5%AD%90%E7%BD%91%E7%9A%84%E5%AD%90)
关于组播,如果我的程序是运作在Windows下面,我如何得到我的组播地址(如何计算)?下面的客户机如何向组播地址注册自己的ip?如何注销自己的IP?广播的时候计算广播地址需要知道该子网的子
关于组播,
如果我的程序是运作在Windows下面,我如何得到我的组播地址(如何计算)?下面的客户机如何向组播地址注册自己的ip?如何注销自己的IP?
广播的时候计算广播地址需要知道该子网的子网掩码?如何得到该子网的子网掩码(通过函数,非人工手动获得)?
关于组播,如果我的程序是运作在Windows下面,我如何得到我的组播地址(如何计算)?下面的客户机如何向组播地址注册自己的ip?如何注销自己的IP?广播的时候计算广播地址需要知道该子网的子
组播地址好像不是计算出来的,如果在局域网内,尽管用(只要不用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);