//открывает raw сокет без учёта конкретного интерфейса private void Button_Click(object sender, RoutedEventArgs e) { if (localSocket == null) { try { if (interfaceList.Text != "") { (sender as Button).Content = "Close Socket"; localSocket = new UdpSocketCl(); IPAddress LocalIP = IPAddress.Parse(interfaceList.Text); IPAddress ipDst = IPAddress.Any; errbox.Text = localSocket.Set_Net(ipDst, 5670, 5670); localSocket.Recived_Socket_Data += DataRecived; localSocket.StartRecive(); } else { errbox.Text = "Выберите сетевой интерфейс!"; } } catch (Exception err) { errbox.Text = err.Message; } } else { try { (sender as Button).Content = "Open Socket"; errbox.Text = localSocket.StopRecive(); this.localSocket = null; } catch (Exception err) { errbox.Text = err.Message; } } }
private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e) { if (this.localSocket != null) { this.localSocket.StopRecive(); this.localSocket = null; } }