public UdpAsmViewModel() { _udpClient = new UdpMulticastClient(); LocalInterfaces = new ObservableCollection <InterfaceAddress>(); _sendViewModel.SendData += OnSend; _udpClient.Received += (sender, arg) => { History.Append(arg.Message); }; _udpClient.StatusChanged += (sender, arg) => { IsGroupJoined = arg.Joined; if (arg.Joined) { _historyViewModel.Header = "Joined: < " + arg.MulticastGroup + " >"; } else { _historyViewModel.Header = "Conversation"; } }; MulticastGroup = ""; MulticastPort = 0; Send.MulticastGroup = ""; Send.Port = 0; Send.MulticastTtl = 16; _historyViewModel.Header = "Conversation"; RebuildInterfaceList(); Properties.Settings.Default.PropertyChanged += (sender, e) => { if (e.PropertyName == nameof(Properties.Settings.Default.IPv6Support)) { RebuildInterfaceList(); } }; NetworkUtils.NetworkInterfaceChange += () => { Application.Current.Dispatcher.Invoke(RebuildInterfaceList); }; }
public MulticastSockets(IPEndPoint group) { Group = group; Default = new UdpMulticastClient(group, null); }