- 博客(87)
- 收藏
- 关注
原创 C#完整代码:针对ip和域名的tcp聊天完整代码
本文展示了一个基于C#的TCP聊天应用程序的界面代码实现。该程序同时具备服务器和客户端功能,主要特点包括:1) 自动获取本地IP和主机名;2) 支持配置服务器端口和客户端连接参数;3) 使用多线程处理网络连接和消息收发;4) 实现双向消息传输功能;5) 包含消息显示和发送的UI界面。代码结构清晰,通过BinaryReader/Writer处理网络流,使用Timer定时检查新消息,并提供完善的资源释放机制。该实现可作为基础网络通信框架,适用于需要双向通信的应用场景。
2025-10-03 23:45:01
288
原创 让神经网络帮你决策的关键 输出概率分布 NN随手记
摘要:神经网络预测未来数据时,损失函数的选择直接影响预测结果的特性。平方损失使预测偏向均值,绝对值损失则减小极端值影响。概率分布预测比单点预测提供更丰富信息,可通过输出分布参数(如高斯分布的均值和方差)实现。分位数预测能描述数据分布形态,通过调整损失函数惩罚比例实现。此外,网络可输出变换参数,通过可逆运算生成复杂分布形态,使用负对数似然损失函数优化预测分布与真实数据的匹配度。不同方法适用于不同预测需求场景。
2025-10-03 16:23:47
953
原创 你的硬盘里到底有什么?计算机启动和把大象从冰箱里拿出来有什么区别?Linux学习笔记16
《计算机启动原理揭秘》摘要:本文深入解析计算机启动过程的底层机制。硬件层面,硬盘通过分区表和文件系统组织数据,如MBR/GPT分区和NTFS/ext4文件系统。传统BIOS启动通过读取MBR引导操作系统,而现代UEFI则采用微型操作系统架构,通过GPT分区和ESP分区中的EFI文件启动系统。两种启动方式存在本质差异:BIOS依赖固定扇区程序,UEFI则具备分区级操作和安全验证功能。文章还阐述了操作系统内核加载过程,揭示了从硬件通电到用户界面出现的完整启动链条。
2025-06-27 23:40:37
977
原创 还没用上git?十分钟看明白vscode+git+github公钥配置
《Git基础与版本控制操作指南》 摘要:本文介绍了Git的基本使用流程,从环境准备到版本控制操作。首先需安装VSCode和Git,并配置用户信息。通过创建本地项目演示了初始化仓库、提交修改(包含查看变更内容)等核心操作。文章特别说明了工作区、暂存区和版本库的区别,并针对误提交情况提供了两种解决方案:直接删除或版本回退。教程涵盖从创建文件、提交修改到处理提交错误的完整工作流,适合Git初学者快速掌握版本控制基础。
2025-06-27 15:38:28
1140
原创 riscv操作系统记录(一)
本文是RISC-V操作系统开发入门指南,针对初学者整理RISC-V架构基础知识。主要内容包括:1)RISC-V指令集特点,介绍RV32I基础指令集及C/G扩展;2)系统架构的三种模式(机器、特权、用户)及虚拟化扩展;3)关键概念如SBI/ABI接口和HART核心抽象;4)开发环境搭建建议(QEMU模拟器、GCC工具链等)。文章着重阐述从硬件控制到系统抽象的编程思路转变,并提供了实验环境配置方案。作为入门学习记录,旨在帮助开发者理解RISC-V系统编程基础框架。
2025-06-09 23:01:54
1020
原创 Conda安装pytorch和cuda出现问题的解决记录
在CentOS系统使用Tesla V100显卡运行PyTorch时,发现虽然安装了PyTorch但无法识别GPU。问题原因是通过conda环境配置文件安装时,因换源导致自动安装了CPU版本的PyTorch。解决方法:1)检查CUDA版本兼容性(nvidia-smi);2)卸载原有PyTorch;3)重新安装指定CUDA版本的PyTorch(如conda install pytorch pytorch-cuda=11.8)。其他建议包括检查驱动版本、统一包管理器、新建环境
2025-06-09 22:54:31
1005
原创 Linux学习笔记15 何为HDD,SSD?sata?PCIE?分区,MBR,GPT分区的理解
Linux学习怎么能不知道电脑的重要组成硬盘的知识呢?前文有学习文件系统的概念。介绍了Linux组织文件的方式和文件的分类。但是最初的时候,最先有的并不是文件系统。而是磁盘。要我说,最关键的那句话就是:分区存在自己的文件系统。而磁盘存在自己的分区。
2024-12-08 21:49:22
1378
1
原创 Linux学习笔记14 了解磁盘:何为HDD,SSD?sata?PCIE?分区,MBR,GPT (上)
前文有学习文件系统的概念。介绍了Linux组织文件的方式和文件的分类。但是最初的时候,最先有的并不是文件系统。而是磁盘。要我说,最关键的那句话就是:分区存在自己的文件系统。磁盘存在自己的分区。
2024-12-08 21:44:42
998
原创 Linux学习笔记13 系统进程管理
之前学习了怎么使用systemd的其他模块命令。一个linux系统从启动到运行,从bios之后读取分区表进入引导程序grub到内核阶段加载文件系统,到系统的第一个用户空间程序初始化程序init或者systemd,到最后被启动的各项服务。大部分的服务是以进程的形式存在于主机上。
2024-12-01 21:53:29
1153
原创 Linux学习笔记12 systemd的其他命令
前文已经介绍了systemd在系统初始化中起到的作用和服务的管理和配置。这里补充一下systemd的其他工具和系统进程的管理。
2024-12-01 21:49:25
620
原创 Linux学习笔记11 系统启动初始化,服务和进程管理(下)
前文介绍了系统启动初始化程序,介绍了systemd的基础知识。这里主要看一下我们systemd的单元管理和常用的命令以及示例。
2024-11-30 21:07:22
991
原创 Linux学习笔记10 系统启动初始化,服务和进程管理(上)
首先是硬件上启动,bios工作,之后进入引导阶段,引导程序会载入内核,内核会启动初始化程序,初始化程序分两个风格,system V和BSD风格。它们做的事情就是配置说明服务脚本什么时候启动,以什么参数启动。
2024-11-30 19:48:10
1274
原创 安装使用Ubuntu18.04超级大全集最初版(anaconda,pycharm,代理,c/c++环境)
本文介绍ubuntu1804中我目前用到的环境的完整配置,包括ubuntu安装软件,更新环境变量等都有涉及。图片非常多,能给的连接和材料都给了。希望能帮助到新同学。
2024-11-29 21:33:09
1687
2
原创 Linux小知识2 系统的启动
我们在上文中介绍了文件系统,提到了Linux的文件系统存在一个块的概念,其中有一个特殊的块:引导块。这和我们这里要讲的系统启动有关。
2024-10-16 22:48:14
522
原创 Linux学习笔记9 文件系统的基础
Linux中,所有的存储空间和设备共享一个根目录,不同的磁盘块和分区挂载在其下,成为某个子目录的子目录,甚至设备也挂载成某个子目录下的一个文件。创建Linux文件系统,最起码要有一个根文件系统,作为文件系统树的根节点。其他文件系统(分区)则是作为子目录。但是不是所有子目录都是一个物理分区,可能单纯就是一个子目录。使用tree命令可以观察树形目录结构。更详细的使用方法可以使用man命令查看使用手册。
2024-10-15 23:09:54
986
原创 C#为任意组件开发登录功能的记录
注意,如果你的软件要给别人运行使用,你的数据库信息也可以存在授权文件中,以避免出现信息的泄露。如果你使用软件直接操作数据库可能存在危险,请注意连接数据库时对sql语句的检查。这个无需多言就是简单的包含了数据操作的内容,允许你在这一个类中写完关于本地数据库或者云数据库操作的逻辑,与登录逻辑分开哦。
2024-09-20 21:47:08
592
原创 【代码】使用c#实现串口通信的基础模板
串口通信是指通过串行方式在两个设备之间进行数据传输的一种通信方式。与并行通信不同,串口通信的数据传输是按位进行的。串口通信最常见的应用是计算机与外设(如传感器、模块或单片机)之间的通信。波特率(Baud Rate):表示每秒传输的比特数。常用的波特率有9600、115200等。数据位(Data Bits):数据包中有效数据的位数,常见的有7位或8位。停止位(Stop Bits):用于标识一个数据包的结束,常见的有1位或2位停止位。校验位(Parity Bit)
2024-09-19 19:54:46
580
原创 PDF转图片的思路思考
那么首先就让用户输入路径,我们使用os.listdir(path)来获取文件和文件夹的列表,这是不包括子文件夹内的,咱们暂时不考虑子文件夹内的,毕竟写完一个文件夹只要来一个递归内部文件夹也就是小菜一碟。首先是了解PDF处理库PyMupdf,这个库得到路径之后普就可以对pdf文件进行处理,那么我要做的就是提供这一个文件的路径和输出的位置以及输出的一些设置,命名之类的。读取pdf文件的流程和方法,首先找到pdf文件,读取PDF文件的元数据乃至于页面,对每个页面进行操作,再进行保存。但在这里不是重点就是了。
2024-09-18 22:13:56
1220
1
原创 Pc端关于不同PDF阅读器的实际体验
因为马上研究生开学了,平时也会阅读很多pdf,实际上我们电脑上也自带一个pdf阅读的软件:也就是我们的edge,但是还是可能有些不够我们使用。下面是一些容易获取到的软件资源。下面的评价仅是个人观点,请理性看待。
2024-09-18 14:39:58
1912
原创 ubuntu个人实用配置问题
作为初学者我们如果出现失误是很正常的,如果失误一次就得完全重来的话是非常打击我们的自信和耐心的,所以我们得时不时检查自己的上一次备份,也就是记得备份你的个人文件夹,这对以后也是有好处的。那么我们今天就到这里。
2024-09-17 16:04:57
758
原创 Linux实操笔记2 Ubuntu安装Nginx的不同方法
今天来了解Ubuntu或者说Linux系统安装Nginx的几种办法。包括从Ubuntu的库安装到官方源码编译安装。
2024-09-16 22:41:50
1867
原创 服务器搭建FTP服务
记录时间2022年9月18本次使用的是vsftpd作为服务器提供FTP服务,vsftpd是linux系统默认的ftp服务器。同时本例中使用的是。
2024-09-15 19:43:16
562
原创 本地部署大模型并使用知识库Windows下Ollama+Docker+MaxKB安装的记录
本文介绍本地部署大模型和知识库的小白方法,可以运行较多种类的大模型,使用的软件为docker和ollama以及MaxKb作为知识库前端。
2024-09-15 04:52:29
1745
原创 VirtualBox桥接网卡消失,安装Docker后导致桥接网卡服务消失问题解决记录
问题记录:VirtualBox虚拟机的桥接网卡消失记录时间:2024.9.14系统:win10问题已解决。
2024-09-14 23:50:37
775
原创 Linux学习笔记8 理解Ubuntu网络管理,做自己网络的主人
原本学习ubuntu网络管理就是为了检查nginx安装过程中使用wget获取压缩包为什么解析不出ip的问题。现在越学越泛倒是忘记初心了。来看看Ubuntu网络管理。
2024-09-14 23:36:19
2271
原创 C#笔记14 异步编程Async,await,task类
我们说过,当我们实现了多线程,我们就拥有了分别执行多个代码块的能力,如果他们执行各自的逻辑,互相不存在等待和阻塞的话,就是完全的异步,但是我们往往会遇到多个线程同时访问或者请求同一个资源的情况下,如果任由他们执行,明显可能会导致数据的错误和资源的抢占,那么为我们就使用了同步的方法来控制线程之间的协作。异步编程就是又回到了之前的问题,我们知道我们线程本身是异步的,但是由于共享资源和共享代码等需要同步机制,所以进行等待。
2024-09-13 23:54:31
2012
1
原创 问题:如何安全的使用Mutex(防遗弃), AbandonedMutexException:The wait completed due to an abandoned mutex.
WaitOne(0);因为它会返回当前线程是否拥有Mutex,所以我拿来判断是否持有Mutex,然后去释放Mutex。但是发现不进行此判断,程序就会正常运行。ReleaseMutex():释放当前 Mutex 一次。注意,这里强调了一次,因为拥有互斥体的线程可以在重复的调用Wait系列函数而不会阻止其执行;这个跟Monitor的Enter()/Exit()可以在获取对象锁后可以被重复调用一样。
2024-09-13 02:33:26
1060
原创 C#笔记13 线程同步概念及其实现,详解lock,Monitor,Mutex代码用法
在我们学会在C#中使用线程之后,我们拥有了把一个程序中的不同代码段在不同线程中运行的能力,可以说此时我们已经能够做到让他们分别执行,异步执行。对于我们的桌面端程序,使用多线程可以让我们在后台进行操作的时候保持用户界面的响应。对于服务器应用程序,多线程可以让我们单独接收处理每个客户端发来的请求。否则在完全处理完一个请求之前将无法响应其他请求。但是多线程完全异步意味着线程之间不存在互相配合,此时就必须协调资源的分配和管理,互相之间必须要有协调。如果多个线程同时访问修改同一个数据,很可能造成数据损坏。
2024-09-12 23:59:27
1354
原创 C#笔记12 线程的常见方法 中断,取消终止,旋转等待,读写字段,分配数据槽
今天来讲线程的一些没有介绍的方法,除了线程的生命周期相关的方法以外还有几个值得细说的方法。我们简单的了解一下。
2024-09-12 19:38:29
1639
原创 C#笔记11 获取线程及其信息,什么是优先级、单元状态、线程状态、执行状态、线程名称以及其他属性?
前文讲完了在C#中线程怎么创建,怎么删除,怎么启动,怎么阻止。现在来看看线程本身的属性。
2024-09-11 23:22:41
1194
原创 C#笔记10 Thread类怎么终止(Abort)和阻止(Join)线程
上次说过怎么简单的使用多线程,怎么创建多线程,但是没有具体分析它的终止和释放。
2024-09-11 19:04:31
1050
原创 在已安装Python环境的基础上安装anaconda或者其他版本Python
很早以前的记录。记录时间:2022-09-20因为学习的需要,在大二粗略学习过Python之后需要安装anaconda,由于anaconda本身包含Python版本,可能与我电脑上的原有的两个Python版本冲突,所以需要一些特殊的安装注意事项。
2024-09-10 23:53:42
2557
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅