删除与接口关联的组播组



使用函数的 C# 应用程序:clientUDP.joinMulticastGroup(MulticastGroup) 我可以将多播地址添加到特定接口。问题是:每次运行我的应用程序时,我都会向网络接口添加一个多播组,但是当应用程序结束时它保持加入状态,因此如果我再次运行切换接口的应用程序,它不起作用,那么我需要更改多播地址并再次...再。。。通过这种方式,我将大量组播地址关联到每个接口。如果我运行:

网中接口IP展示加盟 它显示了我加入多播的界面

Interfaccia 7: Wi-Fi

     Ambito       Referement  Ultimo  Address
     ----------   -----------  ------  ---------------------------------
     0                    0  SÌ    224.0.0.1
     0                    0  SÌ    224.0.0.3
     0                    0  SÌ    224.0.0.121
     0                    2  SÌ    224.0.0.251
     0                    1  SÌ    224.0.0.252
     0                    0  SÌ    224.0.0.253
     0                    0  SÌ    224.168.100.2
     0                    2  SÌ    224.237.248.235
     0                    0  SÌ    224.237.248.237
     0                    0  SÌ    239.255.255.3
     0                    3  SÌ    239.255.255.250

问题是:如何从每个接口中删除此组播连接?只有一个 shell 命令还是我可以在 c# 上做的事情?

我的代码(它仅在我第一次启动应用程序时才有效,而不是第二次运行时我需要更改多播地址):

     private static readonly IPAddress GroupAddress =IPAddress.Parse("224.237.248.235");
     private const int GroupPort = 64555;
     private static IPEndPoint groupEP = new IPEndPoint(GroupAddress, GroupPort);
    //server udp
    private static UdpClient serverUDP = new UdpClient(GroupPort);
    //client udp
    private static UdpClient clientUDP = new UdpClient();
    private static IPEndPoint remoteEpClient = null;

管理

         clientUDP.JoinMulticastGroup(GroupAddress, IPAddress.Parse(LANSharingApp.umu.GetLocalIP()));
         remoteEpClient = new IPEndPoint(GroupAddress, GroupPort);
         serverUDP.JoinMulticastGroup(GroupAddress);

用于发送

          clientUDP.Send(ASCIIEncoding.ASCII.GetBytes(message), ASCIIEncoding.ASCII.GetBytes(message).Length, remoteEpClient);

用于接收 bytes = serverUDP.Receive(ref groupEP);

相关内容

  • 没有找到相关文章

最新更新