Esempio n. 1
0
        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);
            };
        }
Esempio n. 2
0
 public MulticastSockets(IPEndPoint group)
 {
     Group   = group;
     Default = new UdpMulticastClient(group, null);
 }