public BandwidthCheckDialog(NetworkType networkType) { InitializeComponent(); this.DataContext = this; this.NetworkType = networkType; Uri target_uri; string uri_key; switch (networkType) { case NetworkType.IPv6: uri_key = "BandwidthCheckerV6"; break; case NetworkType.IPv4: default: uri_key = "BandwidthChecker"; break; } if (AppSettingsReader.TryGetUri(uri_key, out target_uri)) { this.checker = new BandwidthChecker(target_uri); this.checker.BandwidthCheckCompleted += checker_BandwidthCheckCompleted; this.checker.RunAsync(); this.Status = "帯域測定中"; } else { this.IsChecking = false; this.Status = "接続先設定が取得できません"; } }
protected override async void OnInitialized(EventArgs e) { base.OnInitialized(e); Uri target_uri; string uri_key; switch (NetworkType) { case NetworkType.IPv6: uri_key = "BandwidthCheckerV6"; break; case NetworkType.IPv4: default: uri_key = "BandwidthChecker"; break; } if (AppSettingsReader.TryGetUri(uri_key, out target_uri)) { Status = "帯域測定中"; IsChecking = true; cancellationTokenSource = new CancellationTokenSource(); var checker = new BandwidthChecker(target_uri, NetworkType); try { var result = await checker.RunAsync(cancellationTokenSource.Token); if (result.Succeeded) { Result = (int)((result.Bitrate / 1000) * 0.8 / 100) * 100; Status = String.Format("帯域測定完了: {0}kbps, 設定推奨値: {1}kbps", result.Bitrate / 1000, (int)((result.Bitrate / 1000) * 0.8 / 100) * 100); } else { Status = "帯域測定失敗。接続できませんでした"; } } catch (OperationCanceledException) { Status = "キャンセルされました"; } IsChecking = false; } else { this.IsChecking = false; this.Status = "接続先設定が取得できません"; } }
public CheckBandwidthCommand(SettingViewModel owner) { this.owner = owner; Uri target_uri; if (AppSettingsReader.TryGetUri("BandwidthChecker", out target_uri)) { this.checker = new BandwidthChecker(target_uri); this.checker.BandwidthCheckCompleted += checker_BandwidthCheckCompleted; } else { canExecute = false; } }
protected override void OnStart() { var target_uri = TargetUriV4; if (target_uri == null && AppSettingsReader.TryGetUri("PCPPortChecker", out target_uri)) { TargetUriV4 = target_uri; } if (TargetUriV6 == null && AppSettingsReader.TryGetUri("PCPPortCheckerV6", out target_uri)) { TargetUriV6 = target_uri; } base.OnStart(); }
public void PortCheck() { var ports = peerCast.OutputListeners .Where(listener => (listener.GlobalOutputAccepts & OutputStreamType.Relay) != 0) .Select(listener => listener.LocalEndPoint.Port); Uri target_uri; if (!AppSettingsReader.TryGetUri("PCPPortChecker", out target_uri)) { return; } var checker = new PeerCastStation.UI.PCPPortChecker(peerCast.SessionID, target_uri, ports); checker.PortCheckCompleted += checker_PortCheckCompleted; checker.RunAsync(); PortCheckStatus = PortCheckStatus.Checking; }
public BandwidthCheckDialog() { InitializeComponent(); this.DataContext = this; Uri target_uri; if (AppSettingsReader.TryGetUri("BandwidthChecker", out target_uri)) { this.checker = new BandwidthChecker(target_uri); this.checker.BandwidthCheckCompleted += checker_BandwidthCheckCompleted; this.checker.RunAsync(); this.Status = "帯域測定中"; } else { this.IsChecking = false; this.Status = "接続先設定が取得できません"; } }
protected override void OnStart() { var target_uri = TargetUriV4; if (target_uri == null && AppSettingsReader.TryGetUri("PCPPortChecker", out target_uri)) { TargetUriV4 = target_uri; } if (TargetUriV6 == null && AppSettingsReader.TryGetUri("PCPPortCheckerV6", out target_uri)) { TargetUriV6 = target_uri; } base.OnStart(); CheckAsync() .ContinueWith(prev => { if (prev.IsCanceled || prev.IsFaulted) { return; } foreach (var result in prev.Result) { if (!result.Success) { continue; } if (result.IsOpen) { this.Application.PeerCast.SetPortStatus(result.LocalAddress.AddressFamily, PortStatus.Open); } else { this.Application.PeerCast.SetPortStatus(result.LocalAddress.AddressFamily, PortStatus.Firewalled); } } }); }