簡體   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