刷新
如何通过 wireshark 捕获 C# 上传的图片

博主头像 一:背景 1. 讲故事 这些天计划好好研究下tcp/ip,以及socket套接字,毕竟工控中设计到各种交互协议,如果只是模模糊糊的了解,对分析此类dump还是非常不利的,而研究协议最好的入手点就是用抓包工具 wireshark,废话不多说,这篇通过 wireshark 提取一个小图片作为入手。 二: ...

记一次 .NET 某券商论坛系统 卡死分析

博主头像 一:背景 1. 讲故事 前几个月有位朋友找到我,说他们的的web程序没有响应了,而且监控发现线程数特别高,内存也特别大,让我帮忙看一下怎么回事,现在回过头来几经波折,回味价值太浓了。 二:程序到底经历了什么 1. 在线程上找原因 这个程序内存高,线程高,无响应,尼玛是一个复合态问题,那怎么入手呢?按 ...

Unity播放Hap格式视频 (大分辨下流畅播放以及帧同步解决方案)

博主头像 前言: 之前对于项目上播放大分辨率视频(特别是大于4k分辨率的)常常会感觉相当的头疼,最开始使用的是Unity自带的VideoPlayer,发现效果并不理想,更换为AVPro后发现播放是流畅了 但不能操作视频快进,只要一快进就会出现卡顿,最后偶然间发现了一款用于播放Hap格式视频的插件才最终解决了这 ...

记一次 .NET 某工控电池检测系统 卡死分析

博主头像 一:背景 1. 讲故事 前几天有位朋友找到我,说他的窗体程序有卡死现象,让我帮忙看下怎么回事,解决这种问题就需要在卡死的时候抓一个dump下来,拿到dump之后就可以分析了。 二:为什么会卡死 1. 观察主线程 窗体程序的卡死,需要观察主线程此时正在做什么,可以用 !clrstack 命令观察。 0 ...

基于C# Socket实现的简单的Redis客户端

博主头像 前言 Redis是一款强大的高性能键值存储数据库,也是目前NOSQL中最流行比较流行的一款数据库,它在广泛的应用场景中扮演着至关重要的角色,包括但不限于缓存、消息队列、会话存储等。在本文中,我们将介绍如何基于C# Socket来实现一个简单的Redis客户端类RedisClient,来演示构建请求和 ...

C# DAO转换为DTO工具类

博主头像 思想 DAO(Data Access Object)数据访问对象,是我们在做结构化数据库访问的时候传输的对象,通过这个对象我们可以与数据库中的表建立映射关系 DTO(Data Transfer Object)是我们在与前端进行数据交换时传递的对象 为什么需要设置这这两种对象呢? 为了数据安全 如果我 ...

Office文档转pdf格式(三)

上面两篇介绍的Office文档转pdf格式的方式都只能在Windows系统下使用,存在一定的局限性,本文介绍一个在Windows和Linux下都可以使用的,而且是开源且免费的软件:LibreOffice,下载地址为:https://www.libreoffice.org/download/downl ...

聊一聊 tcp/ip 在.NET故障分析的重要性

博主头像 一:背景 1. 讲故事 这段时间分析了几个和网络故障有关的.NET程序之后,真的越来越体会到计算机基础课的重要,比如 计算机网络 课,如果没有对 tcpip协议 的深刻理解,解决这些问题真的很难,因为你只能在高层做黑盒测试,你无法看到 tcp 层面的握手和psh通讯。 这篇我们通过两个小例子来理解一 ...

编写高性能C#代码 —— Span<T>

博主头像 Span 提供任意内存的连续区域的类型安全和内存安全表示形式。它是在堆栈而不是托管堆上分配的ref结构,是对任意内存块的抽象 。 1.关于Span 在NET Core 2.1中首次引入 提供对任意内存上的连续区域的读写视图 利用索引/迭代来修改范围内的内存 几乎无开销 2.和内存的关系 Span 表 ...

C# 压缩PDF文件

博主头像 PDF 文件可以包含文本、图片及各种媒体元素,但如果文件太大则会影响传输效果同时也会占用过多磁盘空间。通过压缩PDF文件,能够有效减小文件大小,从而提高传输效率并节省存储空间。想要通过C#代码快速有效地压缩 PDF 文件,下面是实现思路: 在 C# 中压缩 PDF 1、在VS中使用 NuGet包管理 ...

Dapper.Lite 扩展

博主头像 Dapper本身并不方便,需要搭配扩展。Dapper是和具体的数据库无关的,再封装的话,不同数据库代码就不一样了,Dapper.Lite以最小的代价支持最多的数据库,旨在简单易用、稳定可靠。 最近重构并精简了Dapper.Lite,以及不依赖Dapper的版本LiteSql。这两款ORM基本完工,自 ...

Office文档转pdf格式(二)

上一篇我们使用的是微软的Office组件将Word、Excel、Powerpoint转为pdf格式,本文将使用WPS Office组件进行转换。步骤如下: ① 添加WPS组件相关引用 注:wpsapi.dll 对应的是Word 文件API;etapi.dll 对应的是Excel 文件API;wppa ...

模拟实现.net中的Task机制:探索异步编程的奥秘

.net中使用Task可以方便地编写异步程序,为了更好地理解Task及其调度机制,接下来模拟Task的实现,目的是搞清楚: Task是什么 Task是如何被调度的 基本的Task模拟实现 从最基本的Task用法开始 Task.Run(Action action) 这个命令的作用是将action作为一 ...

c# list集合克隆

博主头像 在C#中,List集合是一种泛型集合,可以存储任何类型的对象。克隆一个List集合可以通过以下几种方式实现: 使用List的构造函数 使用List的构造函数可以创建一个新的List对象,并将原始List中的元素复制到新List中。例如: List<int> list1 = new List<int> ...

c# Dictionary 字典与线程安全字典的基本使用

博主头像 在C#中,字典(Dictionary)是一种特殊的集合,用于存储键/值对。这是一种关联数组,其中每个元素都包含一个键(Key)和一个值(Value)。 下面是一个简单的C#字典的例子: //字典:泛型;key - value,增删查改 都很快; // 字典如果数据量太大的话,也会影响效率. // 字 ...

记一次 .NET 某工厂无人车调度系统 线程爆高分析

博主头像 一:背景 1. 讲故事 前些天有位朋友找到我,说他程序中的线程数爆高,让我帮忙看下怎么回事,这种线程数爆高的情况找问题相对比较容易,就让朋友丢一个dump给我,看看便知。 二:为什么会爆高 1. 查看托管线程 别人说的话不一定是真,得自己拿数据出来说话,可以用 !t 命令观察一下便知。 0:000> ...

Apollo 配置中心的部署与使用经验

博主头像 Apollo 特点:成熟,稳定 支持管理多环境/多集群/多命名空间的配置 配置修改发布实时(1s)通知到应用程序 支持权限控制、配置继承,版本管理,灰度发布,使用监控等 ...

Office文档转为pdf格式(一)

将Office文档(Word、Excel、Powerpoint)转为pdf格式,有多种实现方式,最常见的就是使用微软的Office组件。步骤如下: ① 打开NuGet包管理器,引用以下四个组件: MicrosoftOfficeCore Microsoft.Office.Interop.Word Mi ...

<1···101112···29>