diff --git a/v2rayN/v2rayN/Handler/SpeedtestHandler.cs b/v2rayN/v2rayN/Handler/SpeedtestHandler.cs index ba0c39bb..e4b660d0 100644 --- a/v2rayN/v2rayN/Handler/SpeedtestHandler.cs +++ b/v2rayN/v2rayN/Handler/SpeedtestHandler.cs @@ -1,6 +1,5 @@ using System.Diagnostics; using System.Net; -using System.Net.NetworkInformation; using System.Net.Sockets; using v2rayN.Mode; using v2rayN.Resx; @@ -9,7 +8,7 @@ namespace v2rayN.Handler { internal class SpeedtestHandler { - private Config _config; + private Config? _config; private CoreHandler _coreHandler; private List _selecteds; private ESpeedActionType _actionType; @@ -51,7 +50,6 @@ namespace v2rayN.Handler { switch (actionType) { - case ESpeedActionType.Ping: case ESpeedActionType.Tcping: case ESpeedActionType.Realping: UpdateFunc(it.indexId, ResUI.Speedtesting, ""); @@ -73,10 +71,6 @@ namespace v2rayN.Handler switch (actionType) { - case ESpeedActionType.Ping: - Task.Run(RunPing); - break; - case ESpeedActionType.Tcping: Task.Run(RunTcping); break; @@ -95,52 +89,45 @@ namespace v2rayN.Handler } } - private async Task RunPingSubAsync(Action updateFun) + private Task RunTcping() { try { - foreach (var it in _selecteds.Where(it => it.configType != EConfigType.Custom)) + List tasks = []; + foreach (var it in _selecteds) { - try + if (it.configType == EConfigType.Custom) { - _ = Task.Run(() => updateFun(it)); + continue; } - catch (Exception ex) + tasks.Add(Task.Run(() => { - Logging.SaveLog(ex.Message, ex); - } - } + try + { + int time = GetTcpingTime(it.address, it.port); + var output = FormatOut(time, Global.DelayUnit); - await Task.Delay(10); + ProfileExHandler.Instance.SetTestDelay(it.indexId, output); + UpdateFunc(it.indexId, output); + } + catch (Exception ex) + { + Logging.SaveLog(ex.Message, ex); + } + })); + } + Task.WaitAll([.. tasks]); } catch (Exception ex) { Logging.SaveLog(ex.Message, ex); } - } - - private async void RunPing() - { - await RunPingSubAsync((ServerTestItem it) => - { - long time = Ping(it.address); - var output = FormatOut(time, Global.DelayUnit); - - ProfileExHandler.Instance.SetTestDelay(it.indexId, output); - UpdateFunc(it.indexId, output); - }); - } - - private async void RunTcping() - { - await RunPingSubAsync((ServerTestItem it) => + finally { - int time = GetTcpingTime(it.address, it.port); - var output = FormatOut(time, Global.DelayUnit); + ProfileExHandler.Instance.SaveTo(); + } - ProfileExHandler.Instance.SetTestDelay(it.indexId, output); - UpdateFunc(it.indexId, output); - }); + return Task.CompletedTask; } private Task RunRealPing() @@ -336,7 +323,7 @@ namespace v2rayN.Handler await RunSpeedTestMulti(); } - public async Task GetRealPingTime(DownloadHandle downloadHandle, IWebProxy webProxy) + private async Task GetRealPingTime(DownloadHandle downloadHandle, IWebProxy webProxy) { int responseTime = await downloadHandle.GetRealPingTime(_config.speedTestItem.speedPingTestUrl, webProxy, 10); //string output = Utils.IsNullOrEmpty(status) ? FormatOut(responseTime, "ms") : status; @@ -376,43 +363,6 @@ namespace v2rayN.Handler return responseTime; } - /// - /// Ping - /// - /// - /// - public long Ping(string host) - { - long roundtripTime = -1; - try - { - int timeout = 30; - int echoNum = 2; - using Ping pingSender = new(); - for (int i = 0; i < echoNum; i++) - { - PingReply reply = pingSender.Send(host, timeout); - if (reply.Status == IPStatus.Success) - { - if (reply.RoundtripTime < 0) - { - continue; - } - if (roundtripTime < 0 || reply.RoundtripTime < roundtripTime) - { - roundtripTime = reply.RoundtripTime; - } - } - } - } - catch (Exception ex) - { - Logging.SaveLog(ex.Message, ex); - return -1; - } - return roundtripTime; - } - private string FormatOut(object time, string unit) { //if (time.ToString().Equals("-1")) diff --git a/v2rayN/v2rayN/Mode/ESpeedActionType.cs b/v2rayN/v2rayN/Mode/ESpeedActionType.cs index 4864061b..c8068f78 100644 --- a/v2rayN/v2rayN/Mode/ESpeedActionType.cs +++ b/v2rayN/v2rayN/Mode/ESpeedActionType.cs @@ -2,7 +2,6 @@ { public enum ESpeedActionType { - Ping, Tcping, Realping, Speedtest, diff --git a/v2rayN/v2rayN/Resx/ResUI.Designer.cs b/v2rayN/v2rayN/Resx/ResUI.Designer.cs index 1e749021..9c4abe99 100644 --- a/v2rayN/v2rayN/Resx/ResUI.Designer.cs +++ b/v2rayN/v2rayN/Resx/ResUI.Designer.cs @@ -969,15 +969,6 @@ namespace v2rayN.Resx { } } - /// - /// 查找类似 Test servers ping (Ctrl+P) 的本地化字符串。 - /// - public static string menuPingServer { - get { - return ResourceManager.GetString("menuPingServer", resourceCulture); - } - } - /// /// 查找类似 Promotion 的本地化字符串。 /// diff --git a/v2rayN/v2rayN/Resx/ResUI.fa-Ir.resx b/v2rayN/v2rayN/Resx/ResUI.fa-Ir.resx index e0d7993c..4f4202d8 100644 --- a/v2rayN/v2rayN/Resx/ResUI.fa-Ir.resx +++ b/v2rayN/v2rayN/Resx/ResUI.fa-Ir.resx @@ -529,9 +529,6 @@ تمام آمار خدمات را پاک کنید - - تست پینگ سرورها (Ctrl+P) - آزمایش سرورها با تاخیر واقعی (Ctrl+R) diff --git a/v2rayN/v2rayN/Resx/ResUI.resx b/v2rayN/v2rayN/Resx/ResUI.resx index 8de9d591..60614513 100644 --- a/v2rayN/v2rayN/Resx/ResUI.resx +++ b/v2rayN/v2rayN/Resx/ResUI.resx @@ -532,9 +532,6 @@ Clear all service statistics - - Test servers ping (Ctrl+P) - Test servers real delay (Ctrl+R) diff --git a/v2rayN/v2rayN/Resx/ResUI.ru.resx b/v2rayN/v2rayN/Resx/ResUI.ru.resx index c1b3c928..1dcfded4 100644 --- a/v2rayN/v2rayN/Resx/ResUI.ru.resx +++ b/v2rayN/v2rayN/Resx/ResUI.ru.resx @@ -532,9 +532,6 @@ Очистить всю статистику - - Тест на задержку сервера (Ctrl+P) - Тест на реальную задержку сервера (Ctrl+R) @@ -1072,4 +1069,4 @@ URL спидтеста - + \ No newline at end of file diff --git a/v2rayN/v2rayN/Resx/ResUI.zh-Hans.resx b/v2rayN/v2rayN/Resx/ResUI.zh-Hans.resx index d98faff9..214d1675 100644 --- a/v2rayN/v2rayN/Resx/ResUI.zh-Hans.resx +++ b/v2rayN/v2rayN/Resx/ResUI.zh-Hans.resx @@ -532,9 +532,6 @@ 清除所有服务统计数据 - - 测试服务器延迟Ping(多选) (Ctrl+P) - 测试服务器真连接延迟(多选) (Ctrl+R) diff --git a/v2rayN/v2rayN/Resx/ResUI.zh-Hant.resx b/v2rayN/v2rayN/Resx/ResUI.zh-Hant.resx index 1e40e8e7..34c66557 100644 --- a/v2rayN/v2rayN/Resx/ResUI.zh-Hant.resx +++ b/v2rayN/v2rayN/Resx/ResUI.zh-Hant.resx @@ -531,9 +531,6 @@ 清除所有服務統計資料 - - 測試伺服器延遲Ping(多選) (Ctrl+P) - 測試伺服器真連接延遲(多選) (Ctrl+R) diff --git a/v2rayN/v2rayN/ViewModels/MainWindowViewModel.cs b/v2rayN/v2rayN/ViewModels/MainWindowViewModel.cs index da9a3747..289830f3 100644 --- a/v2rayN/v2rayN/ViewModels/MainWindowViewModel.cs +++ b/v2rayN/v2rayN/ViewModels/MainWindowViewModel.cs @@ -112,7 +112,6 @@ namespace v2rayN.ViewModels //servers ping public ReactiveCommand MixedTestServerCmd { get; } - public ReactiveCommand PingServerCmd { get; } public ReactiveCommand TcpingServerCmd { get; } public ReactiveCommand RealPingServerCmd { get; } public ReactiveCommand SpeedServerCmd { get; } @@ -409,10 +408,6 @@ namespace v2rayN.ViewModels { ServerSpeedtest(ESpeedActionType.Mixedtest); }); - PingServerCmd = ReactiveCommand.Create(() => - { - ServerSpeedtest(ESpeedActionType.Ping); - }, canEditRemove); TcpingServerCmd = ReactiveCommand.Create(() => { ServerSpeedtest(ESpeedActionType.Tcping); diff --git a/v2rayN/v2rayN/Views/MainWindow.xaml b/v2rayN/v2rayN/Views/MainWindow.xaml index faf41410..ecaa9416 100644 --- a/v2rayN/v2rayN/Views/MainWindow.xaml +++ b/v2rayN/v2rayN/Views/MainWindow.xaml @@ -581,10 +581,6 @@ x:Name="menuMixedTestServer" Height="{StaticResource MenuItemHeight}" Header="{x:Static resx:ResUI.menuMixedTestServer}" /> - vm.MixedTestServerCmd, v => v.menuMixedTestServer).DisposeWith(disposables); - this.BindCommand(ViewModel, vm => vm.PingServerCmd, v => v.menuPingServer).DisposeWith(disposables); this.BindCommand(ViewModel, vm => vm.TcpingServerCmd, v => v.menuTcpingServer).DisposeWith(disposables); this.BindCommand(ViewModel, vm => vm.RealPingServerCmd, v => v.menuRealPingServer).DisposeWith(disposables); this.BindCommand(ViewModel, vm => vm.SpeedServerCmd, v => v.menuSpeedServer).DisposeWith(disposables); @@ -330,10 +329,6 @@ namespace v2rayN.Views ViewModel?.AddServerViaClipboard(); break; - case Key.P: - ViewModel?.ServerSpeedtest(ESpeedActionType.Ping); - break; - case Key.O: ViewModel?.ServerSpeedtest(ESpeedActionType.Tcping); break;