Remove ping test

pull/4711/head
2dust 2024-02-02 10:39:07 +08:00
parent e1cadc878a
commit ff215bc9aa
11 changed files with 27 additions and 116 deletions

View File

@ -1,6 +1,5 @@
using System.Diagnostics; using System.Diagnostics;
using System.Net; using System.Net;
using System.Net.NetworkInformation;
using System.Net.Sockets; using System.Net.Sockets;
using v2rayN.Mode; using v2rayN.Mode;
using v2rayN.Resx; using v2rayN.Resx;
@ -9,7 +8,7 @@ namespace v2rayN.Handler
{ {
internal class SpeedtestHandler internal class SpeedtestHandler
{ {
private Config _config; private Config? _config;
private CoreHandler _coreHandler; private CoreHandler _coreHandler;
private List<ServerTestItem> _selecteds; private List<ServerTestItem> _selecteds;
private ESpeedActionType _actionType; private ESpeedActionType _actionType;
@ -51,7 +50,6 @@ namespace v2rayN.Handler
{ {
switch (actionType) switch (actionType)
{ {
case ESpeedActionType.Ping:
case ESpeedActionType.Tcping: case ESpeedActionType.Tcping:
case ESpeedActionType.Realping: case ESpeedActionType.Realping:
UpdateFunc(it.indexId, ResUI.Speedtesting, ""); UpdateFunc(it.indexId, ResUI.Speedtesting, "");
@ -73,10 +71,6 @@ namespace v2rayN.Handler
switch (actionType) switch (actionType)
{ {
case ESpeedActionType.Ping:
Task.Run(RunPing);
break;
case ESpeedActionType.Tcping: case ESpeedActionType.Tcping:
Task.Run(RunTcping); Task.Run(RunTcping);
break; break;
@ -95,52 +89,45 @@ namespace v2rayN.Handler
} }
} }
private async Task RunPingSubAsync(Action<ServerTestItem> updateFun) private Task RunTcping()
{ {
try try
{ {
foreach (var it in _selecteds.Where(it => it.configType != EConfigType.Custom)) List<Task> 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) catch (Exception ex)
{ {
Logging.SaveLog(ex.Message, ex); Logging.SaveLog(ex.Message, ex);
} }
} finally
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) =>
{ {
int time = GetTcpingTime(it.address, it.port); ProfileExHandler.Instance.SaveTo();
var output = FormatOut(time, Global.DelayUnit); }
ProfileExHandler.Instance.SetTestDelay(it.indexId, output); return Task.CompletedTask;
UpdateFunc(it.indexId, output);
});
} }
private Task RunRealPing() private Task RunRealPing()
@ -336,7 +323,7 @@ namespace v2rayN.Handler
await RunSpeedTestMulti(); await RunSpeedTestMulti();
} }
public async Task<string> GetRealPingTime(DownloadHandle downloadHandle, IWebProxy webProxy) private async Task<string> GetRealPingTime(DownloadHandle downloadHandle, IWebProxy webProxy)
{ {
int responseTime = await downloadHandle.GetRealPingTime(_config.speedTestItem.speedPingTestUrl, webProxy, 10); int responseTime = await downloadHandle.GetRealPingTime(_config.speedTestItem.speedPingTestUrl, webProxy, 10);
//string output = Utils.IsNullOrEmpty(status) ? FormatOut(responseTime, "ms") : status; //string output = Utils.IsNullOrEmpty(status) ? FormatOut(responseTime, "ms") : status;
@ -376,43 +363,6 @@ namespace v2rayN.Handler
return responseTime; return responseTime;
} }
/// <summary>
/// Ping
/// </summary>
/// <param name="host"></param>
/// <returns></returns>
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) private string FormatOut(object time, string unit)
{ {
//if (time.ToString().Equals("-1")) //if (time.ToString().Equals("-1"))

View File

@ -2,7 +2,6 @@
{ {
public enum ESpeedActionType public enum ESpeedActionType
{ {
Ping,
Tcping, Tcping,
Realping, Realping,
Speedtest, Speedtest,

View File

@ -969,15 +969,6 @@ namespace v2rayN.Resx {
} }
} }
/// <summary>
/// 查找类似 Test servers ping (Ctrl+P) 的本地化字符串。
/// </summary>
public static string menuPingServer {
get {
return ResourceManager.GetString("menuPingServer", resourceCulture);
}
}
/// <summary> /// <summary>
/// 查找类似 Promotion 的本地化字符串。 /// 查找类似 Promotion 的本地化字符串。
/// </summary> /// </summary>

View File

@ -529,9 +529,6 @@
<data name="menuClearServerStatistics" xml:space="preserve"> <data name="menuClearServerStatistics" xml:space="preserve">
<value>تمام آمار خدمات را پاک کنید</value> <value>تمام آمار خدمات را پاک کنید</value>
</data> </data>
<data name="menuPingServer" xml:space="preserve">
<value>تست پینگ سرورها (Ctrl+P)</value>
</data>
<data name="menuRealPingServer" xml:space="preserve"> <data name="menuRealPingServer" xml:space="preserve">
<value>آزمایش سرورها با تاخیر واقعی (Ctrl+R)</value> <value>آزمایش سرورها با تاخیر واقعی (Ctrl+R)</value>
</data> </data>

View File

@ -532,9 +532,6 @@
<data name="menuClearServerStatistics" xml:space="preserve"> <data name="menuClearServerStatistics" xml:space="preserve">
<value>Clear all service statistics</value> <value>Clear all service statistics</value>
</data> </data>
<data name="menuPingServer" xml:space="preserve">
<value>Test servers ping (Ctrl+P)</value>
</data>
<data name="menuRealPingServer" xml:space="preserve"> <data name="menuRealPingServer" xml:space="preserve">
<value>Test servers real delay (Ctrl+R)</value> <value>Test servers real delay (Ctrl+R)</value>
</data> </data>

View File

@ -532,9 +532,6 @@
<data name="menuClearServerStatistics" xml:space="preserve"> <data name="menuClearServerStatistics" xml:space="preserve">
<value>Очистить всю статистику</value> <value>Очистить всю статистику</value>
</data> </data>
<data name="menuPingServer" xml:space="preserve">
<value>Тест на задержку сервера (Ctrl+P)</value>
</data>
<data name="menuRealPingServer" xml:space="preserve"> <data name="menuRealPingServer" xml:space="preserve">
<value>Тест на реальную задержку сервера (Ctrl+R)</value> <value>Тест на реальную задержку сервера (Ctrl+R)</value>
</data> </data>
@ -1072,4 +1069,4 @@
<data name="TbSettingsSpeedTestUrl" xml:space="preserve"> <data name="TbSettingsSpeedTestUrl" xml:space="preserve">
<value>URL спидтеста</value> <value>URL спидтеста</value>
</data> </data>
</root> </root>

View File

@ -532,9 +532,6 @@
<data name="menuClearServerStatistics" xml:space="preserve"> <data name="menuClearServerStatistics" xml:space="preserve">
<value>清除所有服务统计数据</value> <value>清除所有服务统计数据</value>
</data> </data>
<data name="menuPingServer" xml:space="preserve">
<value>测试服务器延迟Ping(多选) (Ctrl+P)</value>
</data>
<data name="menuRealPingServer" xml:space="preserve"> <data name="menuRealPingServer" xml:space="preserve">
<value>测试服务器真连接延迟(多选) (Ctrl+R)</value> <value>测试服务器真连接延迟(多选) (Ctrl+R)</value>
</data> </data>

View File

@ -531,9 +531,6 @@
<data name="menuClearServerStatistics" xml:space="preserve"> <data name="menuClearServerStatistics" xml:space="preserve">
<value>清除所有服務統計資料</value> <value>清除所有服務統計資料</value>
</data> </data>
<data name="menuPingServer" xml:space="preserve">
<value>測試伺服器延遲Ping(多選) (Ctrl+P)</value>
</data>
<data name="menuRealPingServer" xml:space="preserve"> <data name="menuRealPingServer" xml:space="preserve">
<value>測試伺服器真連接延遲(多選) (Ctrl+R)</value> <value>測試伺服器真連接延遲(多選) (Ctrl+R)</value>
</data> </data>

View File

@ -112,7 +112,6 @@ namespace v2rayN.ViewModels
//servers ping //servers ping
public ReactiveCommand<Unit, Unit> MixedTestServerCmd { get; } public ReactiveCommand<Unit, Unit> MixedTestServerCmd { get; }
public ReactiveCommand<Unit, Unit> PingServerCmd { get; }
public ReactiveCommand<Unit, Unit> TcpingServerCmd { get; } public ReactiveCommand<Unit, Unit> TcpingServerCmd { get; }
public ReactiveCommand<Unit, Unit> RealPingServerCmd { get; } public ReactiveCommand<Unit, Unit> RealPingServerCmd { get; }
public ReactiveCommand<Unit, Unit> SpeedServerCmd { get; } public ReactiveCommand<Unit, Unit> SpeedServerCmd { get; }
@ -409,10 +408,6 @@ namespace v2rayN.ViewModels
{ {
ServerSpeedtest(ESpeedActionType.Mixedtest); ServerSpeedtest(ESpeedActionType.Mixedtest);
}); });
PingServerCmd = ReactiveCommand.Create(() =>
{
ServerSpeedtest(ESpeedActionType.Ping);
}, canEditRemove);
TcpingServerCmd = ReactiveCommand.Create(() => TcpingServerCmd = ReactiveCommand.Create(() =>
{ {
ServerSpeedtest(ESpeedActionType.Tcping); ServerSpeedtest(ESpeedActionType.Tcping);

View File

@ -581,10 +581,6 @@
x:Name="menuMixedTestServer" x:Name="menuMixedTestServer"
Height="{StaticResource MenuItemHeight}" Height="{StaticResource MenuItemHeight}"
Header="{x:Static resx:ResUI.menuMixedTestServer}" /> Header="{x:Static resx:ResUI.menuMixedTestServer}" />
<MenuItem
x:Name="menuPingServer"
Height="{StaticResource MenuItemHeight}"
Header="{x:Static resx:ResUI.menuPingServer}" />
<MenuItem <MenuItem
x:Name="menuTcpingServer" x:Name="menuTcpingServer"
Height="{StaticResource MenuItemHeight}" Height="{StaticResource MenuItemHeight}"

View File

@ -113,7 +113,6 @@ namespace v2rayN.Views
//servers ping //servers ping
this.BindCommand(ViewModel, vm => vm.MixedTestServerCmd, v => v.menuMixedTestServer).DisposeWith(disposables); this.BindCommand(ViewModel, vm => 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.TcpingServerCmd, v => v.menuTcpingServer).DisposeWith(disposables);
this.BindCommand(ViewModel, vm => vm.RealPingServerCmd, v => v.menuRealPingServer).DisposeWith(disposables); this.BindCommand(ViewModel, vm => vm.RealPingServerCmd, v => v.menuRealPingServer).DisposeWith(disposables);
this.BindCommand(ViewModel, vm => vm.SpeedServerCmd, v => v.menuSpeedServer).DisposeWith(disposables); this.BindCommand(ViewModel, vm => vm.SpeedServerCmd, v => v.menuSpeedServer).DisposeWith(disposables);
@ -330,10 +329,6 @@ namespace v2rayN.Views
ViewModel?.AddServerViaClipboard(); ViewModel?.AddServerViaClipboard();
break; break;
case Key.P:
ViewModel?.ServerSpeedtest(ESpeedActionType.Ping);
break;
case Key.O: case Key.O:
ViewModel?.ServerSpeedtest(ESpeedActionType.Tcping); ViewModel?.ServerSpeedtest(ESpeedActionType.Tcping);
break; break;