From 79cbd443669963b1bfbf2123fdae04e22fca8865 Mon Sep 17 00:00:00 2001 From: Kimdiego2098 <2248356998@qq.com> Date: Mon, 30 Oct 2023 21:31:30 +0800 Subject: [PATCH] =?UTF-8?q?tcpservice=E5=81=9C=E6=AD=A2=E6=97=B6=E6=89=A7?= =?UTF-8?q?=E8=A1=8Cshutdown=E6=96=B9=E6=B3=95=EF=BC=8C=E4=BF=AE=E5=A4=8Dd?= =?UTF-8?q?emo=E5=8F=91=E5=B8=83=E4=B8=8D=E6=98=BE=E7=A4=BA=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- framework/Demo/Directory.Build.props | 1 - ...ingsGateway.Foundation.Demo.Photino.csproj | 14 +++++ .../wwwroot/favicon.ico | Bin .../wwwroot/favicon.png | Bin .../wwwroot/index.html | 0 .../ThingsGateway.Foundation.Demo.Rcl.csproj | 59 +++++++++--------- .../MainFrom.Designer.cs | 5 +- .../MainFrom.cs | 5 ++ ...ingsGateway.Foundation.Demo.Winform.csproj | 15 ++++- .../wwwroot/favicon.ico | Bin 0 -> 4286 bytes .../wwwroot/favicon.png | Bin 0 -> 10516 bytes .../wwwroot/index.html | 41 ++++++++++++ .../ReadWriteDevicesTcpDataHandleAdapter.cs | 2 +- .../Socket/Components/Tcp/TcpService.cs | 24 +++++++ 14 files changed, 130 insertions(+), 36 deletions(-) rename framework/Demo/{ThingsGateway.Foundation.Demo.Rcl => ThingsGateway.Foundation.Demo.Photino}/wwwroot/favicon.ico (100%) rename framework/Demo/{ThingsGateway.Foundation.Demo.Rcl => ThingsGateway.Foundation.Demo.Photino}/wwwroot/favicon.png (100%) rename framework/Demo/{ThingsGateway.Foundation.Demo.Rcl => ThingsGateway.Foundation.Demo.Photino}/wwwroot/index.html (100%) create mode 100644 framework/Demo/ThingsGateway.Foundation.Demo.Winform/wwwroot/favicon.ico create mode 100644 framework/Demo/ThingsGateway.Foundation.Demo.Winform/wwwroot/favicon.png create mode 100644 framework/Demo/ThingsGateway.Foundation.Demo.Winform/wwwroot/index.html diff --git a/framework/Demo/Directory.Build.props b/framework/Demo/Directory.Build.props index 6dc68172c..44c1103ef 100644 --- a/framework/Demo/Directory.Build.props +++ b/framework/Demo/Directory.Build.props @@ -2,7 +2,6 @@ 3.0.0.27 latest - net6.0;net7.0 Diego ThingsGateway © 2023-present Diego diff --git a/framework/Demo/ThingsGateway.Foundation.Demo.Photino/ThingsGateway.Foundation.Demo.Photino.csproj b/framework/Demo/ThingsGateway.Foundation.Demo.Photino/ThingsGateway.Foundation.Demo.Photino.csproj index 3de262cc0..b53eb8b67 100644 --- a/framework/Demo/ThingsGateway.Foundation.Demo.Photino/ThingsGateway.Foundation.Demo.Photino.csproj +++ b/framework/Demo/ThingsGateway.Foundation.Demo.Photino/ThingsGateway.Foundation.Demo.Photino.csproj @@ -2,6 +2,7 @@ WinExe + net6.0;net7.0 favicon.ico @@ -28,5 +29,18 @@ + + + Always + + + Always + + + Always + + + + diff --git a/framework/Demo/ThingsGateway.Foundation.Demo.Rcl/wwwroot/favicon.ico b/framework/Demo/ThingsGateway.Foundation.Demo.Photino/wwwroot/favicon.ico similarity index 100% rename from framework/Demo/ThingsGateway.Foundation.Demo.Rcl/wwwroot/favicon.ico rename to framework/Demo/ThingsGateway.Foundation.Demo.Photino/wwwroot/favicon.ico diff --git a/framework/Demo/ThingsGateway.Foundation.Demo.Rcl/wwwroot/favicon.png b/framework/Demo/ThingsGateway.Foundation.Demo.Photino/wwwroot/favicon.png similarity index 100% rename from framework/Demo/ThingsGateway.Foundation.Demo.Rcl/wwwroot/favicon.png rename to framework/Demo/ThingsGateway.Foundation.Demo.Photino/wwwroot/favicon.png diff --git a/framework/Demo/ThingsGateway.Foundation.Demo.Rcl/wwwroot/index.html b/framework/Demo/ThingsGateway.Foundation.Demo.Photino/wwwroot/index.html similarity index 100% rename from framework/Demo/ThingsGateway.Foundation.Demo.Rcl/wwwroot/index.html rename to framework/Demo/ThingsGateway.Foundation.Demo.Photino/wwwroot/index.html diff --git a/framework/Demo/ThingsGateway.Foundation.Demo.Rcl/ThingsGateway.Foundation.Demo.Rcl.csproj b/framework/Demo/ThingsGateway.Foundation.Demo.Rcl/ThingsGateway.Foundation.Demo.Rcl.csproj index 8f8e1c02e..ef36e33a2 100644 --- a/framework/Demo/ThingsGateway.Foundation.Demo.Rcl/ThingsGateway.Foundation.Demo.Rcl.csproj +++ b/framework/Demo/ThingsGateway.Foundation.Demo.Rcl/ThingsGateway.Foundation.Demo.Rcl.csproj @@ -1,18 +1,19 @@  + + net6.0;net7.0 + + Pro - - - + - - + @@ -45,24 +46,26 @@ - - - - - - - - - - + + + + + + + + + + + + - + @@ -70,11 +73,18 @@ + + + + + + + - + @@ -143,20 +153,7 @@ - - - Always - - - - - - - - - - - + diff --git a/framework/Demo/ThingsGateway.Foundation.Demo.Winform/MainFrom.Designer.cs b/framework/Demo/ThingsGateway.Foundation.Demo.Winform/MainFrom.Designer.cs index da0e2cf1b..5ce5314df 100644 --- a/framework/Demo/ThingsGateway.Foundation.Demo.Winform/MainFrom.Designer.cs +++ b/framework/Demo/ThingsGateway.Foundation.Demo.Winform/MainFrom.Designer.cs @@ -51,7 +51,7 @@ namespace ThingsGateway.Foundation.Demo.Winform // blazorWebView1.Dock = DockStyle.Fill; blazorWebView1.Location = new Point(0, 0); - blazorWebView1.Margin = new Padding(4, 4, 4, 4); + blazorWebView1.Margin = new Padding(4); blazorWebView1.Name = "blazorWebView1"; blazorWebView1.Size = new Size(1029, 529); blazorWebView1.TabIndex = 0; @@ -64,9 +64,10 @@ namespace ThingsGateway.Foundation.Demo.Winform ClientSize = new Size(1029, 529); Controls.Add(blazorWebView1); Icon = (Icon)resources.GetObject("$this.Icon"); - Margin = new Padding(4, 4, 4, 4); + Margin = new Padding(4); Name = "MainFrom"; Text = "Form1"; + FormClosed += MainFrom_FormClosed; ResumeLayout(false); } diff --git a/framework/Demo/ThingsGateway.Foundation.Demo.Winform/MainFrom.cs b/framework/Demo/ThingsGateway.Foundation.Demo.Winform/MainFrom.cs index cf6675d05..47f76b26d 100644 --- a/framework/Demo/ThingsGateway.Foundation.Demo.Winform/MainFrom.cs +++ b/framework/Demo/ThingsGateway.Foundation.Demo.Winform/MainFrom.cs @@ -32,5 +32,10 @@ namespace ThingsGateway.Foundation.Demo.Winform this.Text = "ThingsGateway.Foundation.Demo"; blazorWebView1.RootComponents.Add("#app"); } + + private void MainFrom_FormClosed(object sender, FormClosedEventArgs e) + { + Application.Exit(); + } } } \ No newline at end of file diff --git a/framework/Demo/ThingsGateway.Foundation.Demo.Winform/ThingsGateway.Foundation.Demo.Winform.csproj b/framework/Demo/ThingsGateway.Foundation.Demo.Winform/ThingsGateway.Foundation.Demo.Winform.csproj index 4aaf1e4f9..2625b95fc 100644 --- a/framework/Demo/ThingsGateway.Foundation.Demo.Winform/ThingsGateway.Foundation.Demo.Winform.csproj +++ b/framework/Demo/ThingsGateway.Foundation.Demo.Winform/ThingsGateway.Foundation.Demo.Winform.csproj @@ -21,7 +21,7 @@ - + @@ -30,5 +30,18 @@ + + + Always + + + Always + + + Always + + + + diff --git a/framework/Demo/ThingsGateway.Foundation.Demo.Winform/wwwroot/favicon.ico b/framework/Demo/ThingsGateway.Foundation.Demo.Winform/wwwroot/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..d5a4939b2856a1e50185862447921c074d959e6b GIT binary patch literal 4286 zcmeIzTZm0j9LMo}+>Xm|%(xSKLP$PLjO3G|UxfRVYxzsVo_qVNmENAvUb0&$0z4h^5d+q;P|FhPHuS6l1o zf2Vb{`G;UXp5cv&FNn9%gvGFjMYffP6jtB?3OEX_ z?YH%Fu3XuJFUVp!CSwWOq4B2>S+n$laxoNlpz(WAnika7eR_&6XwQRw#S_r@)9SDE zP%czo`xjc@LI(eqF2nu|KST%Z%Trx$VQ$a)}-I zj!mXdzd`Rp5@(?GUx2?iM0=XhwsN5T@2h?tIlAwku^RsRi8F8o@1go1(TXt$t!Z~E z2daM)8XvX(2CnJ3|Acx3_4WR2#V+hX6SP0NUv{a`wsN5T3+`=HeXUt*@5V}m&ez{g z&4Wtn>$~_CUy(+CONHiZ9;m+FsdD>2j_VIi&K6?me0_Cl9Q19|^D)SrtNt|<>zn>6 zqW>HbHRc?Ya|D{lFBi0l8?g<_4gD$V#{^u3zMneRH(lqY^$*Z@76YNY4bcAIMK$dD zBRS9Fy!wM{r9Z-4(=&SyC!zOuFfPNcKbG_RP>w$zQSbFdWez8 ze636G>`u%_@cwIW=ixBEVK?k`F5vtLUP15ORII^c=-adzQRVGksX~wYQ*KhKB{wmX@~Shg QmuPc46COI0O&jaHUIzs literal 0 HcmV?d00001 diff --git a/framework/Demo/ThingsGateway.Foundation.Demo.Winform/wwwroot/favicon.png b/framework/Demo/ThingsGateway.Foundation.Demo.Winform/wwwroot/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..e88c7d32ff6f1de228b8ee4ff2a3c75bd82626ab GIT binary patch literal 10516 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 literal 0 HcmV?d00001 diff --git a/framework/Demo/ThingsGateway.Foundation.Demo.Winform/wwwroot/index.html b/framework/Demo/ThingsGateway.Foundation.Demo.Winform/wwwroot/index.html new file mode 100644 index 000000000..ad052fdb8 --- /dev/null +++ b/framework/Demo/ThingsGateway.Foundation.Demo.Winform/wwwroot/index.html @@ -0,0 +1,41 @@ + + + + + + ThingsGateway.Foundation.Demo + + + + + + + + + + + + + + + +
+ +
+ + + An error has occurred. This application may no longer respond until reloaded. + + + An unhandled exception has occurred. See browser dev tools for details. + + + Reload + 🗙 +
+ + + + + + \ No newline at end of file diff --git a/framework/Foundation/ThingsGateway.Foundation/Foundation/DataHandleAdapter/ReadWriteDevicesTcpDataHandleAdapter.cs b/framework/Foundation/ThingsGateway.Foundation/Foundation/DataHandleAdapter/ReadWriteDevicesTcpDataHandleAdapter.cs index 03696dac2..3e21dce84 100644 --- a/framework/Foundation/ThingsGateway.Foundation/Foundation/DataHandleAdapter/ReadWriteDevicesTcpDataHandleAdapter.cs +++ b/framework/Foundation/ThingsGateway.Foundation/Foundation/DataHandleAdapter/ReadWriteDevicesTcpDataHandleAdapter.cs @@ -162,7 +162,7 @@ public abstract class ReadWriteDevicesTcpDataHandleAdapter : CustomDat Request = GetInstance(); Request.SendBytes = bytes; await GoSendAsync(bytes, 0, bytes.Length); - Logger?.Trace($"{FoundationConst.LogMessageHeader}{ToString()}- 发送:{Request.SendBytes.ToHexString(' ')}"); + Logger?.Trace($"{FoundationConst.LogMessageHeader}{ToString()}- 发送:{(IsHexData ? Request.SendBytes.ToHexString(' ') : Encoding.UTF8.GetString(Request.SendBytes))}"); } /// diff --git a/framework/Foundation/ThingsGateway.Foundation/TouchSocket/Socket/Components/Tcp/TcpService.cs b/framework/Foundation/ThingsGateway.Foundation/TouchSocket/Socket/Components/Tcp/TcpService.cs index ee1e8ea0e..f2087db9d 100644 --- a/framework/Foundation/ThingsGateway.Foundation/TouchSocket/Socket/Components/Tcp/TcpService.cs +++ b/framework/Foundation/ThingsGateway.Foundation/TouchSocket/Socket/Components/Tcp/TcpService.cs @@ -497,9 +497,21 @@ namespace ThingsGateway.Foundation.Sockets { Logger.Info($"{item.Option.IpHost}停止成功"); } + foreach (var item in GetClients()) + { + try + { + item.MainSocket?.Shutdown(SocketShutdown.Both); + item.SafeDispose(); + } + catch + { + } + } foreach (var item in this.m_monitors) { + item.Socket.SafeDispose(); item.SocketAsyncEvent.SafeDispose(); } @@ -540,6 +552,18 @@ namespace ThingsGateway.Foundation.Sockets if (disposing) { + foreach (var item in GetClients()) + { + try + { + item.MainSocket?.Shutdown(SocketShutdown.Both); + item.SafeDispose(); + } + catch + { + + } + } foreach (var item in this.m_monitors) { item.Socket.SafeDispose();