|
已经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有问题? |
|