mirror of
https://github.com/netchx/netch.git
synced 2026-04-17 21:09:01 +08:00
:art:优化启动速度
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Netch.Controllers
|
||||
{
|
||||
@@ -62,19 +63,19 @@ namespace Netch.Controllers
|
||||
/// <param name="server">服务器</param>
|
||||
/// <param name="mode">模式</param>
|
||||
/// <returns>是否启动成功</returns>
|
||||
public (bool, string) Start(Models.Server server, Models.Mode mode)
|
||||
public bool Start(Models.Server server, Models.Mode mode)
|
||||
{
|
||||
var result = (false, "");
|
||||
var result = false;
|
||||
switch (server.Type)
|
||||
{
|
||||
case "Socks5":
|
||||
if (mode.Type == 4)
|
||||
{
|
||||
result = (false, null);
|
||||
result = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
result = (true, null);
|
||||
result = true;
|
||||
}
|
||||
break;
|
||||
case "SS":
|
||||
@@ -83,7 +84,7 @@ namespace Netch.Controllers
|
||||
{
|
||||
pSSController = new SSController();
|
||||
}
|
||||
result = (pSSController.Start(server, mode), null);
|
||||
result = pSSController.Start(server, mode);
|
||||
break;
|
||||
case "SSR":
|
||||
KillProcess("ShadowsocksR");
|
||||
@@ -91,7 +92,7 @@ namespace Netch.Controllers
|
||||
{
|
||||
pSSRController = new SSRController();
|
||||
}
|
||||
result = (pSSRController.Start(server, mode), null);
|
||||
result = pSSRController.Start(server, mode);
|
||||
break;
|
||||
case "VMess":
|
||||
KillProcess("v2ray");
|
||||
@@ -99,11 +100,11 @@ namespace Netch.Controllers
|
||||
{
|
||||
pVMessController = new VMessController();
|
||||
}
|
||||
result = (pVMessController.Start(server, mode), null);
|
||||
result = pVMessController.Start(server, mode);
|
||||
break;
|
||||
}
|
||||
|
||||
if (result.Item1)
|
||||
if (result)
|
||||
{
|
||||
if (mode.Type == 0)
|
||||
{
|
||||
@@ -116,7 +117,13 @@ namespace Netch.Controllers
|
||||
pNTTController = new NTTController();
|
||||
}
|
||||
// 进程代理模式,启动 NF 控制器
|
||||
result = (pNFController.Start(server, mode), pNTTController.Start().Item2);
|
||||
result = pNFController.Start(server, mode);
|
||||
|
||||
Task.Run(() =>
|
||||
{
|
||||
pNTTController.Start();
|
||||
});
|
||||
|
||||
}
|
||||
else if (mode.Type == 1)
|
||||
{
|
||||
@@ -129,7 +136,12 @@ namespace Netch.Controllers
|
||||
pNTTController = new NTTController();
|
||||
}
|
||||
// TUN/TAP 黑名单代理模式,启动 TUN/TAP 控制器
|
||||
result = (pTUNTAPController.Start(server, mode), pNTTController.Start().Item2);
|
||||
result = pTUNTAPController.Start(server, mode);
|
||||
|
||||
Task.Run(() =>
|
||||
{
|
||||
pNTTController.Start();
|
||||
});
|
||||
}
|
||||
else if (mode.Type == 2)
|
||||
{
|
||||
@@ -142,7 +154,12 @@ namespace Netch.Controllers
|
||||
pNTTController = new NTTController();
|
||||
}
|
||||
// TUN/TAP 白名单代理模式,启动 TUN/TAP 控制器
|
||||
result = (pTUNTAPController.Start(server, mode), pNTTController.Start().Item2);
|
||||
result = pTUNTAPController.Start(server, mode);
|
||||
|
||||
Task.Run(() =>
|
||||
{
|
||||
pNTTController.Start();
|
||||
});
|
||||
}
|
||||
else if (mode.Type == 3 || mode.Type == 5)
|
||||
{
|
||||
@@ -151,7 +168,7 @@ namespace Netch.Controllers
|
||||
pHTTPController = new HTTPController();
|
||||
}
|
||||
// HTTP 系统代理和 Socks5 和 HTTP 代理模式,启动 HTTP 控制器
|
||||
result = (pHTTPController.Start(server, mode), null);
|
||||
result = pHTTPController.Start(server, mode);
|
||||
}
|
||||
else if (mode.Type == 4)
|
||||
{
|
||||
@@ -159,11 +176,11 @@ namespace Netch.Controllers
|
||||
}
|
||||
else
|
||||
{
|
||||
result = (false, null);
|
||||
result = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (!result.Item1)
|
||||
if (!result)
|
||||
{
|
||||
Stop();
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@ namespace Netch.Controllers
|
||||
/// <returns></returns>
|
||||
public (bool, string, string, string) Start()
|
||||
{
|
||||
MainForm.Instance.StatusText($"{Utils.i18N.Translate("Status")}{Utils.i18N.Translate(": ")}{Utils.i18N.Translate("Starting NatTester")}");
|
||||
MainForm.Instance.NatTypeStatusText($"{Utils.i18N.Translate("Starting NatTester")}");
|
||||
try
|
||||
{
|
||||
if (!File.Exists("bin\\NTT.exe"))
|
||||
@@ -50,6 +50,7 @@ namespace Netch.Controllers
|
||||
var natType = result[0];
|
||||
var localEnd = result[1];
|
||||
var publicEnd = result[2];
|
||||
MainForm.Instance.NatTypeStatusText(natType);
|
||||
|
||||
return (true, natType, localEnd, publicEnd);
|
||||
}
|
||||
|
||||
@@ -794,17 +794,9 @@ namespace Netch.Forms
|
||||
|
||||
MainController = new MainController();
|
||||
|
||||
var startResult = MainController.Start(server, mode);//item1是否启动成功,item2nat类型
|
||||
if (startResult.Item2 != null)
|
||||
{
|
||||
NatTypeStatusLabel.Text = "NatType:" + startResult.Item2;
|
||||
}
|
||||
else
|
||||
{
|
||||
NatTypeStatusLabel.Text = "";
|
||||
}
|
||||
var startResult = MainController.Start(server, mode);
|
||||
|
||||
if (startResult.Item1)
|
||||
if (startResult)
|
||||
{
|
||||
// UsedBandwidthLabel.Visible = UploadSpeedLabel.Visible = DownloadSpeedLabel.Visible = true;
|
||||
// MainController.pNFController.OnBandwidthUpdated += OnBandwidthUpdated;
|
||||
@@ -1220,8 +1212,13 @@ namespace Netch.Forms
|
||||
MessageBox.Show(Utils.i18N.Translate("Please select a server first"), Utils.i18N.Translate("Information"), MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
}
|
||||
}
|
||||
public void StatusText(string text) {
|
||||
public void StatusText(string text)
|
||||
{
|
||||
StatusLabel.Text = text;
|
||||
}
|
||||
public void NatTypeStatusText(string text)
|
||||
{
|
||||
NatTypeStatusLabel.Text = "NatType:" + text;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user