2017-10-06 49 views
-1

關聯的多播組與c#應用程序我可以將多播地址添加到特定接口。問題是:每次運行我的應用程序時,我都會向網絡接口添加多播組,但是當應用程序結束時它仍保持連接狀態,所以如果我再次運行切換接口的應用程序,它不會工作,比我需要改變組播地址,然後再一次......這樣我就可以將很多組播地址關聯到每個接口。 如果我運行:使用函數clientUDP.joinMulticastGroup(MulticastGroup)刪除與接口

netsh接口IP顯示加入 它表明我多播接口加入

Interfaccia 7:無線網絡連接

 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#上做的事情?

+0

不需要大喊......併發布您的代碼,以便我們可以回答出錯的地方 –

+0

我發佈了代碼 –

回答

0

我的代碼(它只能首次啓動我的應用程序,比我跑第二次,我需要改變組播地址):

 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); 

用於接收 字節= serverUDP.Receive(參考文獻groupEP);