{
int loop = 1;
struct ip_mreq mcast;
/* 在同一个主机上进行广播设置套接口,
作用是方便单个开发系统上测试多播IP广播 */
loop = 1;
if ((setsockopt(pstSoapEnv->master, SOL_SOCKET, SO_REUSEADDR, (void *) &loop, sizeof (loop))) == -1)
{
printf("setsockopt SO_REUSEADDR error!\n");
}
if(setsockopt(pstSoapEnv->master, IPPROTO_IP, IP_MULTICAST_LOOP, (char *)&loop, sizeof(loop)) <0)
{
perror("setsockopt IP_MULTICAST_LOOP error!\n");
return (-1);
}
mcast.imr_multiaddr.s_addr &#61; inet_addr("239.255.255.250");
mcast.imr_interface.s_addr &#61; htonl(INADDR_ANY);
#if 1
if(setsockopt(pstSoapEnv->master, IPPROTO_IP, IP_ADD_MEMBERSHIP, (char *)&mcast, sizeof(mcast)) <0)
{
printf("setsockopt IP_ADD_MEMBERSHIP error!\n");交叉编译运行在嵌入式开发板上是会报错,会运行到这里
return -1;
}
#endif
return 0;
}
setsockopt(pstSoapEnv->master, IPPROTO_IP, IP_ADD_MEMBERSHIP, (char *)&mcast, sizeof(mcast))
出现这样子的问题可能是开发板的网关出现了问题&#xff0c;设置下网关&#xff0c;我得问题得到了解决&#xff08;我只能说是我的问题解决了&#xff0c;如果你碰到了这种情况&#xff0c;我不能保证和我的情况是一样的&#xff0c;仅供参考&#xff09;。
以下附设置网关命令
route add default gw 192.168.0.1