From e3f6029d07bb74f6ddd6936e6bb74ab4fc8c3e38 Mon Sep 17 00:00:00 2001 From: sin365 <353374337@qq.com> Date: Mon, 15 Apr 2024 11:30:28 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81.net4x?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Lib/Net4x/HaoYueNet.ClientNetworkNet4x.dll | Bin 0 -> 20992 bytes Lib/Net4x/HaoYueNet.ServerNetworkNet4x.dll | Bin 0 -> 24576 bytes Lib/Net4x/System.Buffers.dll | Bin 0 -> 20864 bytes Lib/Net4x/System.Memory.dll | Bin 0 -> 138144 bytes ...System.Runtime.CompilerServices.Unsafe.dll | Bin 0 -> 16768 bytes NoSugarNet.ClientCore/AppNoSugarNet.cs | 20 +++++++++++------- .../Manager/LocalClient/LocalListener.cs | 4 ++-- .../LocalClient/LocalListener_Source.cs | 4 ++-- NoSugarNet.ClientCore/Manager/LogManager.cs | 17 ++++++++++++--- .../Network/NetworkHelper.cs | 2 +- .../NoSugarNet.ClientCore.csproj | 2 +- NoSugarNet.sln | 18 +++++++++++++++- .../NoSugarNet.ClientCli.csproj.user | 2 +- Sample/NoSugarNet.ClientCli/Program.cs | 7 +++++- .../PublishProfiles/FolderProfile.pubxml | 5 ++--- .../PublishProfiles/FolderProfile.pubxml.user | 2 +- 16 files changed, 59 insertions(+), 24 deletions(-) create mode 100644 Lib/Net4x/HaoYueNet.ClientNetworkNet4x.dll create mode 100644 Lib/Net4x/HaoYueNet.ServerNetworkNet4x.dll create mode 100644 Lib/Net4x/System.Buffers.dll create mode 100644 Lib/Net4x/System.Memory.dll create mode 100644 Lib/Net4x/System.Runtime.CompilerServices.Unsafe.dll diff --git a/Lib/Net4x/HaoYueNet.ClientNetworkNet4x.dll b/Lib/Net4x/HaoYueNet.ClientNetworkNet4x.dll new file mode 100644 index 0000000000000000000000000000000000000000..b71c2fd943323bcf8734d14074fadf5d8abb22c3 GIT binary patch literal 20992 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

5mFHX{C*OKP56%`Z|Zb5-I(zC^50C^h_S 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 Wka#V4bE$fwsq#wND*6(E(EkB{hg8A< literal 0 HcmV?d00001 diff --git a/Lib/Net4x/System.Memory.dll b/Lib/Net4x/System.Memory.dll new file mode 100644 index 0000000000000000000000000000000000000000..31486d69ac2f0a18a2b976cb8795a1521410e2af GIT binary patch literal 138144 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 literal 0 HcmV?d00001 diff --git a/NoSugarNet.ClientCore/AppNoSugarNet.cs b/NoSugarNet.ClientCore/AppNoSugarNet.cs index 07242f0..faaaf2d 100644 --- a/NoSugarNet.ClientCore/AppNoSugarNet.cs +++ b/NoSugarNet.ClientCore/AppNoSugarNet.cs @@ -1,6 +1,7 @@ using NoSugarNet.ClientCore.Manager; using NoSugarNet.ClientCore.Network; using ServerCore.Manager; +using static NoSugarNet.ClientCore.Manager.LogManager; namespace NoSugarNet.ClientCore { @@ -25,22 +26,25 @@ namespace NoSugarNet.ClientCore public static event OnUpdateStatusHandler OnUpdateStatus; #endregion - public static void Init(string IP, int port) + public static void Init(string IP, int port, OnLogHandler onLog = null) { log = new LogManager(); + if(onLog != null) + LogManager.OnLog += onLog; networkHelper = new NetworkHelper(); login = new AppLogin(); chat = new AppChat(); local = new AppLocalClient(); user = new UserDataManager(); netStatus = new NetStatus(); - networkHelper.Init(IP, port); - - _SpeedCheckTimeTimer = new System.Timers.Timer(); - _SpeedCheckTimeTimer.Interval = TimerInterval; - _SpeedCheckTimeTimer.Elapsed += Checktimer_Elapsed; - _SpeedCheckTimeTimer.AutoReset = true; - _SpeedCheckTimeTimer.Enabled = true; + if (networkHelper.Init(IP, port)) + { + _SpeedCheckTimeTimer = new System.Timers.Timer(); + _SpeedCheckTimeTimer.Interval = TimerInterval; + _SpeedCheckTimeTimer.Elapsed += Checktimer_Elapsed; + _SpeedCheckTimeTimer.AutoReset = true; + _SpeedCheckTimeTimer.Enabled = true; + } } static void Checktimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) diff --git a/NoSugarNet.ClientCore/Manager/LocalClient/LocalListener.cs b/NoSugarNet.ClientCore/Manager/LocalClient/LocalListener.cs index 58fe869..f4f4987 100644 --- a/NoSugarNet.ClientCore/Manager/LocalClient/LocalListener.cs +++ b/NoSugarNet.ClientCore/Manager/LocalClient/LocalListener.cs @@ -21,7 +21,7 @@ namespace NoSugarNet.ClientCore private void ClientNumberChange(int num, AsyncUserToken token) { - Console.WriteLine("Client数发生变化"); + AppNoSugarNet.log.Debug("Client数发生变化"); //增加连接数 if (num > 0) { @@ -73,7 +73,7 @@ namespace NoSugarNet.ClientCore } catch (Exception ex) { - Console.WriteLine("逻辑处理错误:" + ex.ToString()); + AppNoSugarNet.log.Debug("逻辑处理错误:" + ex.ToString()); } } diff --git a/NoSugarNet.ClientCore/Manager/LocalClient/LocalListener_Source.cs b/NoSugarNet.ClientCore/Manager/LocalClient/LocalListener_Source.cs index 0ed1064..40912ce 100644 --- a/NoSugarNet.ClientCore/Manager/LocalClient/LocalListener_Source.cs +++ b/NoSugarNet.ClientCore/Manager/LocalClient/LocalListener_Source.cs @@ -22,7 +22,7 @@ namespace NoSugarNet.ClientCore private void ClientNumberChange(Socket socket) { - Console.WriteLine("Client数发生变化"); + AppNoSugarNet.log.Debug("Client数发生变化"); //增加连接数 int Idx = AddDictSocket(socket); if (GetSocketByIdx(Idx, out LocalClientInfo _localClientInf)) @@ -83,7 +83,7 @@ namespace NoSugarNet.ClientCore } catch (Exception ex) { - Console.WriteLine("逻辑处理错误:" + ex.ToString()); + AppNoSugarNet.log.Debug("逻辑处理错误:" + ex.ToString()); } } diff --git a/NoSugarNet.ClientCore/Manager/LogManager.cs b/NoSugarNet.ClientCore/Manager/LogManager.cs index 425878d..f07fd60 100644 --- a/NoSugarNet.ClientCore/Manager/LogManager.cs +++ b/NoSugarNet.ClientCore/Manager/LogManager.cs @@ -2,19 +2,30 @@ { public class LogManager { + ///

+ /// 日志 + /// + /// + public delegate void OnLogHandler(int debuglv,string msg); + + /// + /// 内部输出 + /// + public static event OnLogHandler OnLog; + public void Debug(string str) { - Console.WriteLine(str); + OnLog?.Invoke(0,str); } public void Warning(string str) { - Console.WriteLine(str); + OnLog?.Invoke(1,str); } public void Error(string str) { - Console.WriteLine(str); + OnLog?.Invoke(2,str); } } } \ No newline at end of file diff --git a/NoSugarNet.ClientCore/Network/NetworkHelper.cs b/NoSugarNet.ClientCore/Network/NetworkHelper.cs index 0814d43..5950979 100644 --- a/NoSugarNet.ClientCore/Network/NetworkHelper.cs +++ b/NoSugarNet.ClientCore/Network/NetworkHelper.cs @@ -60,7 +60,7 @@ namespace NoSugarNet.ClientCore.Network { //用于Unity内的输出 //Debug.Log("NetCoreDebug >> "+str); - Console.WriteLine("NetCoreDebug >> " + str); + AppNoSugarNet.log.Debug("NetCoreDebug >> " + str); } /// diff --git a/NoSugarNet.ClientCore/NoSugarNet.ClientCore.csproj b/NoSugarNet.ClientCore/NoSugarNet.ClientCore.csproj index 4ef9bb7..2304238 100644 --- a/NoSugarNet.ClientCore/NoSugarNet.ClientCore.csproj +++ b/NoSugarNet.ClientCore/NoSugarNet.ClientCore.csproj @@ -4,7 +4,7 @@ net8.0 enable enable - + diff --git a/NoSugarNet.sln b/NoSugarNet.sln index c7bf68b..a77fd95 100644 --- a/NoSugarNet.sln +++ b/NoSugarNet.sln @@ -20,7 +20,18 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NoSugarNet.ClientCli", "Sam EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NoSugarNet.ServerCli", "Sample\NoSugarNet.ServerCli\NoSugarNet.ServerCli.csproj", "{65220036-9A81-49FA-A5BC-DA06783D2E52}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NoSugarNet.DataHelper", "NoSugarNet.DataHelper\NoSugarNet.DataHelper.csproj", "{3C41B685-B46B-4057-826B-C8C6F395BFA8}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NoSugarNet.DataHelper", "NoSugarNet.DataHelper\NoSugarNet.DataHelper.csproj", "{3C41B685-B46B-4057-826B-C8C6F395BFA8}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Net4X", "Net4X", "{4A660CAE-CD92-411C-9D8E-7CB677DB3C74}" + ProjectSection(SolutionItems) = preProject + Lib\Net4x\HaoYueNet.ClientNetworkNet4x.dll = Lib\Net4x\HaoYueNet.ClientNetworkNet4x.dll + Lib\Net4x\HaoYueNet.ServerNetworkNet4x.dll = Lib\Net4x\HaoYueNet.ServerNetworkNet4x.dll + Lib\Net4x\System.Buffers.dll = Lib\Net4x\System.Buffers.dll + Lib\Net4x\System.Memory.dll = Lib\Net4x\System.Memory.dll + Lib\Net4x\System.Runtime.CompilerServices.Unsafe.dll = Lib\Net4x\System.Runtime.CompilerServices.Unsafe.dll + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NoSugarNet.ClientCoreNet4x", "NoSugarNet.ClientCoreNet4x\NoSugarNet.ClientCoreNet4x.csproj", "{F565C3B8-E210-45F5-9B9E-8C1A49438753}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -48,6 +59,10 @@ Global {3C41B685-B46B-4057-826B-C8C6F395BFA8}.Debug|Any CPU.Build.0 = Debug|Any CPU {3C41B685-B46B-4057-826B-C8C6F395BFA8}.Release|Any CPU.ActiveCfg = Release|Any CPU {3C41B685-B46B-4057-826B-C8C6F395BFA8}.Release|Any CPU.Build.0 = Release|Any CPU + {F565C3B8-E210-45F5-9B9E-8C1A49438753}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F565C3B8-E210-45F5-9B9E-8C1A49438753}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F565C3B8-E210-45F5-9B9E-8C1A49438753}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F565C3B8-E210-45F5-9B9E-8C1A49438753}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -55,6 +70,7 @@ Global GlobalSection(NestedProjects) = preSolution {29D76CF3-BF7E-45A5-9957-2CBC0A41B6FB} = {5E65F25A-8B59-4FC7-8582-C6887C3CD0A1} {65220036-9A81-49FA-A5BC-DA06783D2E52} = {5E65F25A-8B59-4FC7-8582-C6887C3CD0A1} + {4A660CAE-CD92-411C-9D8E-7CB677DB3C74} = {EDA9D3FD-1A72-434D-81F6-B1B420406D20} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {637DC2BB-F9BB-41A2-ADC0-B41B871F66DE} diff --git a/Sample/NoSugarNet.ClientCli/NoSugarNet.ClientCli.csproj.user b/Sample/NoSugarNet.ClientCli/NoSugarNet.ClientCli.csproj.user index 6d2fdd4..2241f9c 100644 --- a/Sample/NoSugarNet.ClientCli/NoSugarNet.ClientCli.csproj.user +++ b/Sample/NoSugarNet.ClientCli/NoSugarNet.ClientCli.csproj.user @@ -1,6 +1,6 @@  - <_LastSelectedProfileId>F:\Sin365\NoSugarNet\Sample\NoSugarNet.ClientCli\Properties\PublishProfiles\FolderProfile.pubxml + <_LastSelectedProfileId>D:\NoSugarNet\Sample\NoSugarNet.ClientCli\Properties\PublishProfiles\FolderProfile.pubxml \ No newline at end of file diff --git a/Sample/NoSugarNet.ClientCli/Program.cs b/Sample/NoSugarNet.ClientCli/Program.cs index 4d48f11..67a5ff9 100644 --- a/Sample/NoSugarNet.ClientCli/Program.cs +++ b/Sample/NoSugarNet.ClientCli/Program.cs @@ -14,7 +14,7 @@ namespace NoSugarNet.ClientCli return; } AppNoSugarNet.OnUpdateStatus += OnUpdateStatus; - AppNoSugarNet.Init(Config.ServerIP, Config.ServerPort); + AppNoSugarNet.Init(Config.ServerIP, Config.ServerPort, OnNoSugarNetLog); while (true) { Console.ReadLine(); @@ -31,5 +31,10 @@ namespace NoSugarNet.ClientCli { return Math.Round((double)bytes / 1024, 2).ToString("F2"); } + static void OnNoSugarNetLog(int LogLevel, string msg) + { + Console.WriteLine(msg); + } + } } \ No newline at end of file diff --git a/Sample/NoSugarNet.ClientCli/Properties/PublishProfiles/FolderProfile.pubxml b/Sample/NoSugarNet.ClientCli/Properties/PublishProfiles/FolderProfile.pubxml index d37ba18..7d6298f 100644 --- a/Sample/NoSugarNet.ClientCli/Properties/PublishProfiles/FolderProfile.pubxml +++ b/Sample/NoSugarNet.ClientCli/Properties/PublishProfiles/FolderProfile.pubxml @@ -6,13 +6,12 @@ https://go.microsoft.com/fwlink/?LinkID=208121. Release Any CPU - bin\Release\net8.0\publish\win-x64\ + bin\Release\net8.0\publish\linux-x64\ FileSystem <_TargetId>Folder net8.0 - win-x64 + linux-x64 false false - false \ No newline at end of file diff --git a/Sample/NoSugarNet.ClientCli/Properties/PublishProfiles/FolderProfile.pubxml.user b/Sample/NoSugarNet.ClientCli/Properties/PublishProfiles/FolderProfile.pubxml.user index c2ac5d6..535e1dd 100644 --- a/Sample/NoSugarNet.ClientCli/Properties/PublishProfiles/FolderProfile.pubxml.user +++ b/Sample/NoSugarNet.ClientCli/Properties/PublishProfiles/FolderProfile.pubxml.user @@ -4,7 +4,7 @@ https://go.microsoft.com/fwlink/?LinkID=208121. --> - True|2024-01-23T08:35:06.3918472Z;True|2024-01-23T16:34:52.0595483+08:00;True|2024-01-23T16:27:36.4850749+08:00;True|2024-01-23T16:27:04.0721589+08:00; + True|2024-04-14T14:24:49.2846754Z;True|2024-01-23T16:35:06.3918472+08:00;True|2024-01-23T16:34:52.0595483+08:00;True|2024-01-23T16:27:36.4850749+08:00;True|2024-01-23T16:27:04.0721589+08:00; \ No newline at end of file