IP_ADD_MEMBERSHIP 失败
/*将本机加入多播组*/ err = setsockopt(fd, IPPROTO_IP, IP_ADD_MEMBERSHIP,&mreq, sizeof(mreq)); if (err < 0) { perror("setsockopt():IP_ADD_MEMBERSHIP"); exit(1); }
因为不同的socket版本,定义IP_ADD_MEMBERSHIP 的值不同:
in socket ver1.0中:
#define IP_ADD_MEMBERSHIP 5
in socket ver2.0中:
#define IP_ADD_MEMBERSHIP 12
改为:
err = setsockopt(fd, IPPROTO_IP, 12,&mreq, sizeof(mreq));