2025-09-27
C#
00

摘要

Socket是一种通信机制,它允许在同一台主机或者不同主机之间进行通信。在C#中,Socket是System.Net.Sockets命名空间下的一个类,它提供了一系列方法和属性用于网络通信。

套接字(Socket)是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。套接字为应用层进程提供了利用网络协议交换数据的机制。套接字连接应用进程和网络协议栈,是应用程序通过网络协议进行通信的接口。套接字是应用程序与网络协议栈进行交互的接口。

正文

通信七层

也被称为OSI(Open Systems Interconnection)模型,是一个用于描述和理解复杂的网络系统的框架。以下是OSI模型的七个层次,以及每个层次的具体作用:

  1. 物理层:负责管理电脑硬件和网络之间的物理连接,如电缆、光纤、网卡等。
  2. 数据链路层:负责在物理地址(如MAC地址)之间传输数据。它还负责错误检测和纠正。
  3. 网络层:负责管理数据包在网络中的路由和转发。它使用IP地址来识别设备。
  4. 传输层:负责端到端的通信。它可以确保数据的完整性。主要的协议是TCP和UDP。
  5. 会话层:负责在设备之间建立、管理和终止会话。它允许不同的应用程序在同一时间进行多个会话。
  6. 表示层:负责数据的表示、安全和压缩。它将数据转换为能够被应用层理解的格式,并进行加密和解密、压缩和解压缩。
  7. 应用层:负责处理特定的应用程序细节。各种程序在这一层上进行通信,如HTTP、FTP、SMTP等。
2025-09-27
C#
00

在 .NET 开发中,依赖注入(DI)是一种常用的设计模式,它有助于减少代码之间的耦合,使得代码更加模块化和易于测试。虽然在 ASP.NET Core 中内置了强大的依赖注入支持,但在 Windows Forms(WinForms)应用程序中实现 DI 可能会比较复杂。本文将介绍如何在 WinForms 应用中使用 Scrutor 来简化服务注册过程,并提供一些实用的示例。

Scrutor 简介

Scrutor 是一个扩展库,它扩展了 .NET Core 的 IServiceCollection,提供了更多灵活的方式来注册服务,尤其是通过扫描程序集来自动注册服务非常实用。这在大型项目中尤其有用,可以避免手动注册每个服务。

设置 WinForms 项目

首先,确保你有一个 WinForms 项目。在 Visual Studio 中创建一个新的 WinForms .NET Core 项目。

添加必要的 NuGet 包

在项目中,我们需要添加以下 NuGet 包:

  • Microsoft.Extensions.DependencyInjection
  • Microsoft.Extensions.Hosting
  • Scrutor
2025-09-27
C#
00

摘要

在C#中,Channel类是.NET Core提供的一种新的生产者消费者模型。Channel类位于System.Threading.Channels命名空间下,它提供了一种异步的消息传递机制,可以用来在生产者和消费者之间传递数据。

正文

Channel类的应用场景

Channel类主要用于以下场景:

  • 异步数据流处理:当我们需要在生产者和消费者之间进行异步数据传递时,可以使用Channel类。
  • 多线程编程:Channel类提供了一种线程安全的方式来传递数据,可以避免在多线程环境中出现的数据竞争问题。
  • 实时数据处理:当我们需要处理实时数据流时,可以使用Channel类来异步地处理数据。

一个简单例子

image.png

2025-09-27
C#
00

摘要

C# 9.0引入的一个新特性就是record类型。在这篇文章中,我们将探讨record类型,它的用途,优点,缺点,以及一些例子。

正文

什么是Record类型?

record类型是一种引用类型,提供了内置功能来封装数据。与类和结构不同,record类型默认是不可变的,这意味着一旦创建了record实例,它就不能被修改。

image.png

2025-09-27
C#
00

摘要

DES(Data Encryption Standard)是一种对称加密算法,是美国联邦政府于1977年发布的一种数据加密标准。它是一种分组密码,将明文分成64位的数据块,并对每个数据块进行加密和解密操作。DES使用相同的密钥进行加密和解密,密钥长度为56位,其中8位用于奇偶校验。

DES的优点包括:

  1. 安全性高:DES是一种经过广泛使用和研究的加密算法,具有较高的安全性。
  2. 可靠性强:DES的算法逻辑简单,实现起来相对容易,且在多个平台上都有成熟的实现。
  3. 速度较快:DES的加密和解密速度相对较快,适用于对大量数据进行加密和解密的场景。

然而,DES也存在一些缺点:

  1. 密钥长度较短:DES的密钥长度为56位,相对较短,容易受到暴力破解的攻击。
  2. 安全性受限:随着计算机技术的发展,DES的安全性逐渐受到质疑,已经被认为不够安全,容易受到差分攻击和线性攻击等攻击方式的破解。

正文

加密

image.png