C# IP多播:我如何知道有人订阅了? 我一直在研究各种关于多播的文档(.NET Winsock,C++ Boo::ASIO)。我遇到的一个问题是,我看不出您如何知道一个组中是否至少有一个订户。我需要它的原因是,如果没有人在听,那么创建数据就没有多大意义。是否有下一跳返回的关于树当前状态的消息?当第一个订阅者出现或最后一个订阅者离开时,是否会触发某种事件?

C# IP多播:我如何知道有人订阅了? 我一直在研究各种关于多播的文档(.NET Winsock,C++ Boo::ASIO)。我遇到的一个问题是,我看不出您如何知道一个组中是否至少有一个订户。我需要它的原因是,如果没有人在听,那么创建数据就没有多大意义。是否有下一跳返回的关于树当前状态的消息?当第一个订阅者出现或最后一个订阅者离开时,是否会触发某种事件?,c#,c++,boost,multicast,C#,C++,Boost,Multicast,请参阅“.”上的这篇文章 简而言之,您的应用程序不需要跟踪多播订阅;路由器为你做这件事。如果您有多播数据要生成,那么生成它-路由器将负责该数据是否发送给订阅者 路由器不会引发任何事件来通知您订阅。如果您需要一些通知,您必须将该功能构建到您自己的自定义协议实现中,并要求您的客户端显式通知主机。您可以知道,如果您可以发出IGMP查询消息,或者可能通过侦听IGMP加入/离开消息:您将只能收到其中一条,除非您连接到多个路由器。只要最后一条IGMP消息是您的组的加入而不是离开,就至少有一个订阅者。很简单,

请参阅“.”上的这篇文章

简而言之,您的应用程序不需要跟踪多播订阅;路由器为你做这件事。如果您有多播数据要生成,那么生成它-路由器将负责该数据是否发送给订阅者


路由器不会引发任何事件来通知您订阅。如果您需要一些通知,您必须将该功能构建到您自己的自定义协议实现中,并要求您的客户端显式通知主机。

您可以知道,如果您可以发出IGMP查询消息,或者可能通过侦听IGMP加入/离开消息:您将只能收到其中一条,除非您连接到多个路由器。只要最后一条IGMP消息是您的组的加入而不是离开,就至少有一个订阅者。

很简单,如果我需要控制是否生成数据,就必须通过另一个通道来完成?在多播场景中没有关于订阅者的事件…@yahia是的,有。您认为IGMP的用途是什么?@EJP在.NET framework中不支持IGMP。