CSoft.Parser
9.4.1
See the version list below for details.
dotnet add package CSoft.Parser --version 9.4.1
NuGet\Install-Package CSoft.Parser -Version 9.4.1
<PackageReference Include="CSoft.Parser" Version="9.4.1" />
<PackageVersion Include="CSoft.Parser" Version="9.4.1" />
<PackageReference Include="CSoft.Parser" />
paket add CSoft.Parser --version 9.4.1
#r "nuget: CSoft.Parser, 9.4.1"
#:package CSoft.Parser@9.4.1
#addin nuget:?package=CSoft.Parser&version=9.4.1
#tool nuget:?package=CSoft.Parser&version=9.4.1
Communication
通讯库
用法详见例子
一、为什么要分割数据包
因为通信的时候,接收到的数据是一个连续的数据流。我们需要从中获取到一个完整的数据包。
二、分割一个数据包的几种方式
1.包头和包尾
例子
头:01 02 尾:04 06(以后的例子中的头和尾都用01 02 和 04 06) 一个完整的数据包 01 02 xx xx … xx 04 06
安全性问题
如果对方只发送了包头,然后一直发送垃圾数据,这些数据中不包含包尾。我们的程序无法丢弃这些垃圾数据,这会导致占用内存越来越大,最终导致程序崩溃
2.包尾
例子
一个完整的数据包 xx xx … xx 04 06
安全性问题
如果对方一直发送垃圾数据,这些数据中不包含包尾。我们的程序无法丢弃这些垃圾数据,这会导致占用内存越来越大,最终导致程序崩溃
3.包头和长度
例子
一个完整的数据包 01 02 03 05 07 其中01 02 是包头(TCP可以不带包头),03代表长度(也可以传入指定长度)。比如协议规定,除包头以外,还有长度为3的数据,本例中是03 05 07。
安全性问题
如果对方一直发送垃圾数据,这些数据中不包含包头。我们的程序可以移除这些无效数据,这样不会使内存占用变大。所以推荐使用这种分割数据包的方式
4.时间
这种方式用于串口通信。不会产生垃圾数据占用内存的问题。一定时间内(比如Modbus是200ms)收到的数据作为一个完整的数据包
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- CSoft.LogInterface (>= 9.0.0)
- CSoft.Utils (>= 9.1.7)
- System.Threading.Channels (>= 9.0.7)
-
net8.0
- CSoft.LogInterface (>= 9.0.0)
- CSoft.Utils (>= 9.1.7)
- System.Threading.Channels (>= 9.0.7)
-
net9.0
- CSoft.LogInterface (>= 9.0.0)
- CSoft.Utils (>= 9.1.7)
- System.Threading.Channels (>= 9.0.7)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on CSoft.Parser:
Package | Downloads |
---|---|
CSoft.TopPortLib
通讯口使用类库 |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last Updated | |
---|---|---|---|
9.4.6 | 314 | 9/8/2025 | |
9.4.5 | 1,054 | 8/8/2025 | |
9.4.4 | 435 | 8/6/2025 | |
9.4.3 | 595 | 8/5/2025 | |
9.4.2 | 880 | 7/25/2025 | |
9.4.1 | 760 | 7/25/2025 | |
9.4.0 | 774 | 7/25/2025 | |
9.3.3 | 817 | 7/25/2025 | |
9.3.2 | 1,403 | 7/22/2025 | |
9.3.1 | 636 | 7/22/2025 | |
9.2.3 | 388 | 7/17/2025 | |
9.2.2 | 543 | 6/27/2025 | |
9.2.1 | 248 | 6/25/2025 | |
9.2.0 | 731 | 5/21/2025 | |
9.1.6 | 515 | 3/20/2025 | |
9.1.5 | 868 | 3/18/2025 | |
9.1.4 | 952 | 2/14/2025 | |
9.1.3 | 306 | 2/12/2025 | |
9.1.2 | 245 | 2/12/2025 | |
9.1.1 | 541 | 1/23/2025 | |
9.1.0 | 833 | 12/28/2024 | |
9.0.0 | 868 | 11/22/2024 | |
8.0.10 | 2,690 | 9/3/2024 | |
8.0.9 | 2,883 | 4/29/2024 | |
8.0.8 | 666 | 4/10/2024 | |
8.0.7 | 437 | 3/11/2024 | |
8.0.6 | 347 | 2/28/2024 | |
8.0.5 | 308 | 2/4/2024 | |
8.0.4 | 261 | 2/4/2024 | |
8.0.3 | 757 | 12/14/2023 | |
8.0.2 | 322 | 12/12/2023 | |
8.0.1 | 540 | 12/4/2023 | |
8.0.0 | 585 | 11/15/2023 | |
7.0.4 | 1,100 | 8/17/2023 | |
7.0.3 | 2,964 | 2/28/2023 | |
7.0.2 | 724 | 2/27/2023 | |
7.0.1 | 2,430 | 2/13/2023 | |
7.0.0 | 3,298 | 11/9/2022 | |
6.6.0 | 1,668 | 10/17/2022 | |
6.5.0 | 1,760 | 10/14/2022 | |
6.4.0 | 1,615 | 10/13/2022 | |
6.3.0 | 885 | 10/13/2022 | |
6.2.6 | 1,214 | 9/30/2022 | |
6.2.5 | 904 | 9/30/2022 | |
6.2.4 | 1,054 | 9/26/2022 | |
6.2.3 | 1,050 | 9/23/2022 | |
6.2.2 | 944 | 9/23/2022 | |
6.2.1 | 895 | 9/22/2022 | |
6.2.0 | 1,671 | 8/19/2022 | |
6.1.2 | 936 | 8/12/2022 | |
6.1.1 | 968 | 5/26/2022 | |
6.0.9 | 967 | 5/19/2022 | |
6.0.5 | 925 | 5/17/2022 | |
6.0.4 | 977 | 5/13/2022 | |
6.0.3 | 1,020 | 3/15/2022 | |
6.0.2 | 952 | 3/15/2022 | |
6.0.1 | 1,187 | 11/9/2021 | |
6.0.0 | 669 | 11/9/2021 | |
5.0.7 | 857 | 8/18/2021 | |
5.0.6 | 1,635 | 3/11/2021 | |
5.0.5 | 927 | 1/26/2021 | |
5.0.4 | 1,039 | 1/22/2021 | |
5.0.3 | 1,033 | 1/11/2021 | |
5.0.2 | 886 | 11/18/2020 | |
5.0.1 | 879 | 11/18/2020 | |
5.0.0 | 727 | 11/18/2020 | |
2.0.0 | 1,350 | 10/15/2020 | |
1.0.0 | 1,228 | 6/30/2020 |
修复头长度分包器,并在构造中新增数据包中是否包含头字节