繁体   English   中英

Windows C ++组播发送

[英]Windows C++ Multicast send

我正在努力使用Windows发送多播数据包。

下面是我的代码:

SOCKET sd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
    if (sd < 0) {
        perror("opening datagram socket");
        exit(1);
    }
    sockaddr_in service;
    service.sin_family = AF_INET;
    service.sin_addr.s_addr = inet_addr("225.1.1.1");
    service.sin_port = htons(56565);

    struct in_addr localInterface;
    localInterface.s_addr = inet_addr("10.0.0.58");
    if (setsockopt(sd, IPPROTO_IP, IP_MULTICAST_IF, (char *)&localInterface, sizeof(localInterface)) < 0) {
        perror("setting local interface");
        exit(1);
    }
    std::string data = "AA";
    if (sendto(sd, data.c_str(), data.length(), 0, (const sockaddr*)&service, sizeof(service)) < 0)
        exit(0);

代码始终在setsockopt if上退出。 10.0.0.58是我的Wi-Fi卡地址。 我究竟做错了什么?

但我无法在Wireshark上捕获数据包

如果您从未验证过您的WiFi网络可以处理IP mcast(类似问题),则将WiFi路由器配置为禁用multicast IGMP数据包! 因此,您首先要检查WiFi路由器的“设置IGMP”部分!

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM