编辑
2025-09-27
C#
00

摘要

在.NET框架中,UDP通信是通过System.Net.Sockets命名空间下的UdpClient类实现的。以下是关于如何在WinForms应用程序中使用UDP通信的一些基本概念,常用属性和方法,以及一些示例。

正文

UdpClient类

UdpClient类提供了发送和接收UDP数据报的方法。它是无连接的,即发送和接收数据报不需要建立和关闭连接。

常用的属性有:

  • Available:获取要读取的可用数据的数量(以字节为单位)。
  • Client:获取或设置底层网络套接字。
  • ExclusiveAddressUse:获取或设置一个布尔值,该值指定是否允许只有一个套接字绑定到特定端口。

常用的方法有:

  • Close:关闭UDP连接并释放所有相关资源。
  • Connect:连接到远程主机。
  • Receive:接收一个UDP数据报。
  • Send:发送一个UDP数据报。
编辑
2025-09-27
C#
00

摘要

在计算机科学中,TCP/IP协议是一种网络通信协议,它被广泛用于计算机之间的通信。为了在计算机之间进行通信,我们需要编写服务器端代码来处理客户端的请求,并向客户端发送响应。在本文中,我们将学习如何使用C#编写一个基本的TCP/IP服务器端,以便在计算机之间进行通信。

正文

  • Socket类用于网络通信。
  • Bind方法将Socket绑定到本地的一个网络地址和端口号。
  • Listen方法使Socket开始监听连接请求。
  • BeginAcceptEndAccept方法异步接受一个连接请求,返回一个表示连接的Socket对象。
  • BeginReceiveEndReceive方法异步从Socket接收数据。

写一个服务器

image.png

编辑
2025-09-27
C#
00

摘要

在本文中,我们将学习如何使用C#编写一个基本的TCP/IP客户端,以便在计算机之间进行通信。Socket是C#中用于网络通信的基本类之一,它允许应用程序在本地计算机和远程计算机之间进行通信。在本文中,我们将使用Socket类来创建一个TCP/IP客户端应用程序,以便可以从本地计算机向远程计算机发送数据。

正文

TCP/IP,即传输控制协议/网际协议,是一种面向连接的、可靠的、基于字节流的传输层通信协议,同时也是一种应用广泛的网络协议。

TCP/IP协议包含了两个主要的协议:传输控制协议(TCP)和网际协议(IP)。

  • TCP(Transmission Control Protocol):传输控制协议是一种面向连接的、可靠的、基于字节流的传输层通信协议。它负责在数据发送和接收设备之间建立连接,确保数据的有序传输,并检查数据在传输过程中是否出错。
  • IP(Internet Protocol):网际协议是用于发送和接收数据包的协议。每个使用TCP/IP的设备都有一个独一无二的IP地址,这使得数据能够被正确地发送到目标设备。

TCP/IP协议是互联网的基础,所有的互联网数据通信都是基于TCP/IP协议进行的。

image.png

编辑
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