winsock错误10099是什么 我尝试订阅C++中的多播组。可能的地址是238.0.0.1 代码已经投入生产一年多了 struct ip_mreq mreq; unsigned long mcastAddr = (238 << 24) |

winsock错误10099是什么 我尝试订阅C++中的多播组。可能的地址是238.0.0.1 代码已经投入生产一年多了 struct ip_mreq mreq; unsigned long mcastAddr = (238 << 24) | ,c++,winsock,multicast,C++,Winsock,Multicast,winsock错误10099是什么 我尝试订阅C++中的多播组。可能的地址是238.0.0.1 代码已经投入生产一年多了 struct ip_mreq mreq; unsigned long mcastAddr = (238 << 24) | 0 << 16) | (0 << 8) | 1; mreq.imr_interface.s_addr = INADDR_ANY; mreq.imr_multiaddr.s_addr = htonl(mcastAddr);

winsock错误10099是什么 <>我尝试订阅C++中的多播组。可能的地址是238.0.0.1 代码已经投入生产一年多了

struct ip_mreq mreq;
unsigned long mcastAddr = (238 << 24) | 0 << 16) | (0 << 8) | 1;
mreq.imr_interface.s_addr = INADDR_ANY;
mreq.imr_multiaddr.s_addr = htonl(mcastAddr);

if (setsockopt(m_fdIn, IPPROTO_IP, IP_ADD_MEMBERSHIP, (char*)&mreq, sizeof(mreq)) < 0)
{
   WARNF("multicast subscription failed, winsock error %d\n", WSAGetLastError());
   return -1;
}
struct ip_mreq mreq;

无符号长mcastAddr=(238而不是手动移位位,使用
inet_addr(“238.0.0.1”)
代替。在任何情况下,都没有定义错误10099,除非它是新的且尚未记录。
setsockopt()
未记录以报告10099错误。Winsock SDK中定义的最接近的值是
wsanotinialised
(10093)和
WSAEDISCON
(10101)。我猜在相关主机上禁用了多播。