【问题标题】:UDP Multicast server adding Clients to Multicast GroupUDP 多播服务器将客户端添加到多播组
【发布时间】:2020-11-12 13:27:49
【问题描述】:

我有一个C项目用C语言实现组播,这里服务器(只有一个)发送数据,客户端接收服务器(多个)发送的数据。

这里的问题是,我希望服务器到客户端到多播组。

mreq.imr_multiaddr.s_addr = mcastAddr.s_addr;
mreq.imr_interface.s_addr = htonl(INADDR_ANY);
rc = setsockopt(sd, IPPROTO_IP, IP_ADD_MEMBERSHIP,
(void *) &mreq, sizeof(mreq) );

上面的东西是用来从客户端添加客户端到组播组的。

有没有办法将客户端从服务器添加到组? 我认为获取客户端的套接字并将其添加到组对我来说没有意义,是否可能。

任何帮助表示赞赏,在此先感谢。

【问题讨论】:

    标签: c sockets multicast reliable-multicast


    【解决方案1】:

    多播发送方不能让接收方监听多播地址,至少不能直接监听。上面的代码告诉运行它的机器开始监听特定接口上的特定多播地址。

    如果您希望服务器告诉客户端加入组,您需要以应用程序特定的方式发送单独的单播消息,告诉客户端加入组,然后当客户端收到消息时它会加入该组使用上面的代码。

    【讨论】:

    • 感谢回复,我也这么认为,但想知道有没有办法做到这一点,正如在分配中提到的那样,客户端向服务器发送 JOIN 消息以加入多播组。
    • 如何限制加入多播组的客户端,任何想法
    • @UDAYREDDYKAIPA 你没有。任何机器都可以独立加入它想要的任何多播组。
    猜你喜欢
    • 2012-07-18
    • 2015-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多