1、组播和广播需要在局域网内才能实现,另外得查看linux系统是否支持多播和广播:
2、发送多播包的主机需要设置网关,否则运行sendto()会出现"network is unreachable",网卡可以随便设置,但是一定要设。还要添加路由240.0.0.0,即:
route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0
route add default gw "192.168.9.1" dev eth0
3 、出现:“setsockopt:No such device”。的提示,说明多播IP设置出现问题,系统所需要的uint32_t格式的网络地址的开头不是1110,检验通不过。解决办法:在把地址字符串"*.*.*.*"转化为uint32_t时采用htonl(inet_network(“*.*.*.*”))或者inet_aton函数,inet_aton(GRUPO, &srv.sin_addr)
ifconfig
UP BROADCAST MULTICAST MTU:1500 跃点数:1 说明该网卡支持
2、发送多播包的主机需要设置网关,否则运行sendto()会出现"network is unreachable",网卡可以随便设置,但是一定要设。还要添加路由240.0.0.0,即:
route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0
route add default gw "192.168.9.1" dev eth0
3 、出现:“setsockopt:No such device”。的提示,说明多播IP设置出现问题,系统所需要的uint32_t格式的网络地址的开头不是1110,检验通不过。解决办法:在把地址字符串"*.*.*.*"转化为uint32_t时采用htonl(inet_network(“*.*.*.*”))或者inet_aton函数,inet_aton(GRUPO, &srv.sin_addr)