Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 退出多播组时通知_C#_Sockets_Udp_Multicast_Udpclient - Fatal编程技术网

C# 退出多播组时通知

C# 退出多播组时通知,c#,sockets,udp,multicast,udpclient,C#,Sockets,Udp,Multicast,Udpclient,我在一个多播组上设置了一个侦听器 udpclient.JoinMulticastGroup(multicastaddress, localIpAddress); while(listeing) data = udpclient.receive(ref remoteep); 抱歉,当同一个多播组中的其他成员离开时,我不会得到通知。 我在IGMP协议下的wireshark中看到了它 当成员离开我的c#listener上的多播组时,如何通知我。在C级别上没有API,因此无法在更高级别上实现A

我在一个多播组上设置了一个侦听器

udpclient.JoinMulticastGroup(multicastaddress, localIpAddress);
while(listeing)
    data = udpclient.receive(ref remoteep);
抱歉,当同一个多播组中的其他成员离开时,我不会得到通知。 我在IGMP协议下的wireshark中看到了它


当成员离开我的c#listener上的多播组时,如何通知我。在C级别上没有API,因此无法在更高级别上实现API。

您不能。在C级没有API,因此无法在更高级别实现API。

发送您自己的自定义
leave
message。是的,这样就可以解决一个问题,但是,如果有人插上电缆或终止应用程序,你将无法通过UDP检测到这一点,因为该协议是无连接的。请发送你自己的自定义
留言。是的,这样就可以解决一个问题,但是如果有人插上电缆或终止应用程序,你永远无法用UDP检测到这一点,因为协议是无连接的。好吧,也许有个解决办法?如果有人断开了其他人的连接,接收者会得到通知,那就太好了。我会发送一些“ping linke”消息并等待回复,但我发现这个解决方案不太好。@goblins您可以看看一些可靠的多播协议,如TRAM、LRMS等,以获得一些想法。但是多播的基本思想是你不知道或不关心谁是对等的。好吧,也许是一个解决办法?如果有人断开了其他人的连接,接收者会得到通知,那就太好了。我会发送一些“ping linke”消息并等待回复,但我发现这个解决方案不太好。@goblins您可以看看一些可靠的多播协议,如TRAM、LRMS等,以获得一些想法。但是多播的基本思想是,你不知道或不关心谁是对等的。