0

我有一个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) );

上面的东西用于从客户端将客户端添加到多播组。

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

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

4

1 回答 1

0

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

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

于 2020-11-12T13:34:46.160 回答