找回密码
 注册
查看: 925|回复: 0

udp/ip多播通信组不能join

[复制链接]
发表于 2006-8-3 13:07:55 | 显示全部楼层 |阅读模式
已经socket()成功,可是后面join Multicast group时,我在执行以下code的时候老是出错

      // If receiving from a multicast group, register for it.
      if (inet_addr(IconCtrlStruct.StringParam[1]) > 0)
        {
          if ((inet_addr(IconCtrlStruct.StringParam[1]) & inet_addr("240.0.0.0")) == inet_addr("224.0.0.0"))
            {
              mreq.imr_multiaddr.s_addr = inet_addr(IconCtrlStruct.StringParam[1]);
              mreq.imr_interface.s_addr = INADDR_ANY;              
              // Have the multicast socket join the multicast group
              if (setsockopt(sd, IPPROTO_IP, IP_ADD_MEMBERSHIP, (char*)&mreq, sizeof(mreq)) == -1)
                {
                  MyPrint("%s: ERROR: Could not join multicast group (%d), %s\n group IP is %s \n", PROGNAME, errno,strerror(errno),IconCtrlStruct.StringParam[1]);

                  return(EIO);
                }

setsockopt的errno是249:Can't assign requested address
请问这个是什么问题,难道是mreq.imr_interface.s_addr = INADDR_ANY有问题?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2025-2-6 18:54 , Processed in 0.052185 second(s), 15 queries .

© 2001-2025 Discuz! Team. Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表