- 博客(29)
- 资源 (5)
- 收藏
- 关注
原创 java服务注册到 Nacos 及相关配置
Nacos是阿里巴巴开源的微服务治理工具,支持服务注册发现和配置管理。本文介绍了服务注册Nacos的步骤:1)引入依赖并配置Nacos地址;2)使用@EnableDiscoveryClient注解启用服务发现;3)通过Nacos控制台管理配置信息。此外还说明了服务间调用的方法,可通过RestTemplate结合DiscoveryClient实现服务发现调用。Nacos简化了微服务架构中的服务治理与配置管理,为服务注册、配置管理和服务发现提供了完善支持。
2025-09-23 23:01:10
577
原创 如何解决stun服务无法打洞建立p2p连接的问题
摘要:针对对称型NAT间无法通过STUN服务实现点对点通信的问题,提出搭建TUN服务进行流转发的解决方案。文中展示了服务架构示意图,并提供了部分核心代码片段,包括ICE候选类型检测(relay/srflx/host)、协议解析及候选缓存功能,通过日志记录实现调试跟踪。该方法为对称NAT环境下的通信提供了可行替代方案。(149字)
2025-09-21 16:42:26
614
1
原创 C语言进阶知识:贪吃蛇游戏制作
本文介绍了如何使用C语言实现贪吃蛇游戏,通过该案例可巩固结构体、指针、链表等知识点。代码包含蛇身移动、食物生成、碰撞检测等核心功能,使用链表存储蛇身节点,并实现游戏暂停、得分计算等功能。程序通过方向键控制蛇的移动方向,检测墙壁碰撞和自身咬合情况,具有完整的游戏循环框架。该实现运用了Windows API进行控制台光标定位,适合C语言学习者作为进阶练习项目。
2025-09-17 22:17:46
653
原创 C++ 中的 RAII简介【资源】
RAII(资源获取即初始化)是C++的核心编程范式,通过将资源生命周期与对象绑定来自动管理资源。在构造函数中获取资源(如内存、文件句柄),在析构函数中释放,确保资源在任何退出路径(包括异常)下都能正确释放。这种方法避免了手动管理的泄漏风险,使代码更健壮简洁。标准库中的智能指针、文件流等均采用RAII设计。需注意拷贝问题,通常需禁用拷贝或实现移动语义。RAII是编写现代、安全C++代码的基石。
2025-09-14 18:40:57
826
原创 C++智能指针:unique_ptr 简单用法
本文介绍了C++智能指针unique_ptr的用法。unique_ptr具有独占所有权特性,能自动释放堆对象,避免内存泄漏。通过示例展示了如何创建unique_ptr(可直接new或使用make_unique),调用对象方法,以及在作用域结束时自动析构。还特别说明了对malloc分配的内存需要自定义删除器(使用free释放)的情况,并提供了相应代码示例。该智能指针简化了内存管理,是C++中避免内存泄漏的有效工具。
2025-09-12 21:30:15
197
原创 C++ 智能指针shared_ptr用法及注意事项
本文介绍了C++中shared_ptr智能指针的使用及注意事项。通过代码示例展示了shared_ptr共享所有权的特性,并演示了循环引用问题及其解决方案——使用weak_ptr打破循环。文章还总结了使用shared_ptr时的9个注意事项,包括避免循环引用、性能优化、线程安全等关键点,帮助开发者正确使用该智能指针,避免内存泄漏等问题。
2025-09-12 21:27:24
339
原创 如何轻松掌握 C语言图的创建
【摘要】分享用C语言实现图的创建教程,适合数据结构初学者。文章通过邻接矩阵方式构建无向图,包含完整的输入输出示例和核心代码片段。代码展示了如何初始化顶点、边以及权重信息,并处理无向图的对称性。该基础实现为后续图的遍历算法打下基础,强调"从基础做起,方能行稳致远"的学习理念。(149字)
2025-09-12 21:22:44
471
原创 C++中,Lambda表达式的捕获子句([])从外部作用域捕获变量几种方式
本文介绍了C++中Lambda表达式的捕获方式,主要包括值捕获和引用捕获两大类。值捕获通过[var]创建变量副本,默认不可修改,需使用mutable关键字修改;引用捕获通过[&var]直接操作原始变量。文章还介绍了隐式捕获([=]/[&])、混合捕获([=,&var])、捕获this指针等特殊用法,并强调显式捕获更安全。最后提醒引用捕获可能导致悬空引用,建议在类成员函数中使用[*this]捕获对象副本以避免问题。这些捕获方式为Lambda表达式提供了强大的灵活性。
2025-09-10 12:01:50
778
原创 简单实现 C++ http 服务端
摘要:本文介绍了用C++实现异步HTTP服务器的方法,重点展示了基于Boost.Beast库的核心代码结构。实现包含HttpServer和HttpSession两个主要类,使用std::enable_shared_from_this管理对象生命周期,通过net::io_context实现异步I/O操作。服务器采用多线程模型(4个工作线程)处理并发请求,主函数演示了服务器启动流程。文章还提及了异步回调、对象生存期管理等关键点,并提供了请求处理的效果截图。完整代码可供C++开发者参考实现高性能HTTP服务。
2025-09-09 22:23:36
418
原创 C++ std::enable_shared_from_this 类模板到底有什么用?【 C++11 标准中正式引入】
本文介绍了C++中std::enable_shared_from_this模板的用法,通过HttpServer示例说明其重要性。在异步回调中直接使用this指针可能导致对象提前销毁引发未定义行为,而shared_from_this()通过共享所有权确保对象生命周期延长到异步操作完成。文章分析了其工作原理:shared_from_this()会创建新的shared_ptr副本,增加引用计数,直到回调执行完毕才可能释放对象。该模板是解决异步操作中对象生命周期问题的标准工具,能有效防止悬空指针问题。
2025-09-09 22:16:32
2208
1
原创 Linux系统中常见的 configure 命令的用法【Makefile.ini】
本文介绍了Linux系统中.configure命令的作用及工作原理。.configure命令通过检测系统环境(如架构、编译器、依赖库等),将Makefile.in模板中的占位符替换为实际参数,生成定制的Makefile文件。Makefile包含编译器选项、链接器设置等变量定义,以及构建规则,指导make命令完成编译和链接过程。该文适合对C/C++等编程语言及系统构建感兴趣的读者参考学习。
2025-09-09 18:25:54
765
原创 http协议 与 websocket协议之间的区别联系
摘要:HTTP协议基于请求-响应模型,服务器无法主动推送数据,实时性差。WebSocket通过HTTP握手建立连接后转为持久化全双工通信,使用轻量级帧结构,显著降低延迟。两者关键区别在于WebSocket支持服务器主动推送,适用于实时场景。可通过抓包工具(如Wireshark)分析具体差异。更多编程实战内容可关注B站"大衣哥编程"。(149字)
2025-09-08 22:49:57
379
原创 k8s中, 容器、pod、node节点之间的关系
本文介绍了Kubernetes中的核心概念层级关系:Node(物理/虚拟机)作为基础资源,承载多个Pod(最小调度单元);每个Pod可包含1个或多个紧密关联的容器(如主应用+Sidecar)。通过示例展示单台Node运行3个Pod(共4个容器)的场景,阐明Kubernetes通过Pod抽象容器组的设计思想,既保持灵活性又提升资源利用率。关键概念依次为:Cluster→Node→Pod→Container,构成Kubernetes的核心架构层次。
2025-09-08 22:28:18
724
原创 k8s 如何实现分布式部署及维持副本数量
本文介绍了Kubernetes如何通过Deployment和ReplicaSet机制实现分布式部署并维持副本数量。当主机b断电时,Node Controller会检测并标记节点为不可用,随后ReplicaSet Controller发现Pod数量不足,自动创建新Pod并调度到健康节点上,最终恢复服务的3个副本状态。整个过程通过持续的监控和协调机制,确保集群始终保持用户声明的期望状态。文章还配有YAML配置示例和流程图,直观展示了Kubernetes的故障恢复机制。
2025-09-08 22:07:31
1063
原创 Linux系统程序运行时如何查找依赖的动态库 so
本文介绍了Linux系统下程序运行时查找动态库(.so)的机制。动态链接器会依次检查:编译时指定的RPATH/RUNPATH、LD_LIBRARY_PATH环境变量、/etc/ld.so.cache缓存文件(由ldconfig根据/etc/ld.so.conf及子目录配置生成)以及默认系统路径(/lib、/usr/lib等)。重点强调修改配置后必须执行sudo ldconfig更新缓存,并提供了验证库路径是否生效的方法(ldconfig -v、ldd命令)。最后建议为应用程序创建独立的conf文件配置库搜索
2025-09-08 16:39:32
485
原创 谁说 C++ 不能创建WebSocket ?
本文介绍了如何使用C++和Boost库创建WebSocket服务端。主要内容包括:通过Boost库实现WebSocket握手、消息接收和回传功能;展示了服务端代码示例,包含会话处理和服务器创建;同时提供了Web客户端连接示例代码。作者还给出了运行效果截图,并提示需要包含相关头文件。文章最后附上了作者B站主页链接,方便读者进一步交流。该教程适合对WebSocket开发和C++网络编程感兴趣的开发者学习参考。
2025-09-08 10:47:01
234
原创 到底什么才是:视频软解码 及 硬解码?
文章摘要:本文由B站大衣哥编程分享,解析了视频编解码中的软解码与硬解码概念。软解码通过CPU执行软件算法实现,灵活但效率低;硬解码则利用GPU专用硬件电路,高效但格式支持有限。浏览器会根据系统能力智能选择解码方式:先尝试硬解码,失败则转为软解码。这解释了为何某些视频只能在专用客户端播放,而浏览器无法直接支持。(149字)
2025-09-08 10:07:57
1811
原创 WebSocket 网络通信协议实战
WebSocket是一种基于TCP的全双工实时通信协议,通过HTTP升级握手建立持久连接,实现客户端与服务器的双向低延迟数据传输。其特点包括轻量级帧结构(2-10字节头部)、支持二进制/文本数据、心跳检测和分片传输。典型应用场景涵盖在线聊天、金融行情推送和游戏同步等。相比HTTP轮询,WebSocket显著提升了实时交互效率,成为现代Web实时通信的核心技术。文章详细解析了握手过程、数据帧结构及控制机制,并配有示例说明。
2025-09-07 22:21:18
853
原创 Linux系统 su - username 与 su username 区别
本文介绍了Linux系统中su - username与su username的区别。带-选项会模拟登录Shell,依次加载/etc/profile和用户profile文件,并可能调用~/.bashrc;而不带-则仅加载~/.bashrc。建议读者实际操作体验差异。作者是B站"大衣哥编程",欢迎关注交流编程问题。
2025-09-07 17:51:11
288
原创 什么 是 Linux 系统管理和故障排查的“瑞士军刀”
linux系统中,lsof 是系统管理和故障排查的“瑞士军刀”,是一个极其强大且常用的 Linux/Unix 系统工具,对于排查系统问题非常有帮助。
2025-09-07 15:39:00
1015
原创 Linux 系统 目录结构知识
本文介绍了Linux系统目录结构知识,重点解析了根目录(/)和/usr/目录下关键子目录的区别,包括/bin、/sbin、/lib和/usr/bin、/usr/sbin、/usr/lib等。文章说明了系统启动必需文件和非必需应用的不同存放位置,解释了包管理器安装和源码编译安装软件的不同默认路径(/usr和/usr/local),并阐述了这种设计的隔离性、优先级和管理优势。最后提到了现代发行版趋向合并目录的趋势(usrmerge)。
2025-09-07 10:05:44
1638
原创 Linux系统 dirname命令使用
这篇文章介绍了Linux中Loop设备的概念,并详细解析了一段获取脚本所在目录路径的Bash代码。作者(B站大衣哥编程)讲解了${BASH_SOURCE[0]}、dirname、cd、pwd等命令的作用和使用方法,通过示例说明了如何获取脚本的绝对路径。最后,作者还分享了自己的编程专长领域(C/C++/Java/Go等)并提供了联系方式。全文主要包含技术讲解和作者简介两部分内容。
2025-09-07 09:34:31
362
原创 linux 系统 lsblk命令使用
本文介绍了Linux系统中/dev/loop*设备的含义,重点解析了使用lsblk命令时常见的分区编号问题。文章解释了MBR分区表中主分区(sda1-4)与扩展分区(sda2)的关系,以及逻辑分区(sda5+)的编号规则。特别说明了EFI系统分区(/boot/efi)、扩展分区和根分区(/)的作用与特点。内容来自B站"大衣哥编程",主要面向对C/C++、Java等编程语言及系统开发感兴趣的观众。
2025-09-07 09:22:19
882
原创 linux 系统,日志系统的logrotate功能介绍
Linux日志管理:/var/log目录与logrotate详解 本文介绍了Linux系统中/var/log目录的作用及logrotate日志轮替工具的工作原理。logrotate仅处理配置文件中指定的日志文件,不会自动扫描整个目录。系统默认配置通常只包含核心服务日志,建议为自定义应用手动创建配置文件。文章提供了logrotate配置模板,包含daily、rotate、compress等常用参数说明,并重点推荐使用copytruncate参数以确保兼容性。最后介绍了使用logrotate -vf命令测试配置
2025-09-06 18:31:16
436
原创 在 Debian/Ubuntu 的包管理系统中,当执行 apt install <package> 或 dpkg -i <package.deb> 时,调用bash脚本传参数注意事项
本文介绍了Debian/Ubuntu系统中软件包安装时bash脚本的参数传递机制。当执行apt install或dpkg -i时,系统会自动调用软件包的postinst脚本,并以"configure"作为第一个参数。该脚本位于/var/lib/dpkg/info/目录下,负责安装后的配置工作,如服务注册和启动。文章还列出了不同操作(安装、移除、升级失败等)触发的对应参数和脚本名称,帮助理解包管理系统的执行流程。
2025-09-06 16:51:59
335
原创 何为 Linux 的“黑洞“设备,所有写入它的数据都会消失?
本文介绍了Linux中的"/dev/null"黑洞设备及其在shell脚本中的应用。通过示例脚本演示了如何使用">/dev/null 2>&1"静默执行命令,丢弃所有输出。详细解释了重定向符号的含义和执行顺序,并分析了if条件判断只依赖于命令退出状态码的特性。文章还说明了如何利用这一特性来静默检查命令是否存在、执行服务管理等操作。作者B站大衣哥编程专注于多种编程语言和数据库技术的实战与架构指导。
2025-09-06 16:44:47
1044
原创 Linux 系统中TYPE 为 loop 的设备是什么设备?
Linux中的loop设备是一种虚拟块设备,可将普通文件(如.iso镜像或.snap文件)当作独立磁盘设备挂载使用。它们由内核提供,通常以loop0、loop1等形式存在。现代Linux系统中,多数loop设备由snap包管理器创建,用于挂载应用程序的只读压缩镜像文件(如/snap/vlc/3000)。用户可通过lsblk和losetup命令查看具体关联文件。与物理磁盘不同,loop设备是虚拟的、通常只读的,主要用于实现文件隔离和便携式部署。这些设备的自动出现属于正常现象,无需担心。
2025-09-06 09:27:34
1021
原创 Linux系统 登录Shell与非登录Shell及PATH环境变量
Linux系统登陆shell与非登陆shell:系统通过执行/etc/profile和用户配置文件初始化环境变量(如PATH),并传递给后续启动的桌面环境。当用户打开终端时,终端模拟器继承桌面环境的所有变量,再传递给Bash子进程。这种继承机制避免了重复初始化,确保环境一致性并提升启动速度。整个过程如同家族财富传承:登录Shell是"创业者",后续进程自动继承其环境配置。终端里的Bash能直接使用PATH等变量,是因完整继承了父进程的环境。该设计优化了系统资源使用,保持了会话环境统一性。
2025-09-05 11:53:42
367
原创 Ubuntu 的包管理系统中postinst脚本调用机制
var/lib/dpkg/info/<package-name>.postinst, 或 dpkg/debian/postnst。执行 postinst 脚本:/var/lib/dpkg/info/my-service.postinst configure。echo "警告: 启用服务失败 - $SERVICE_NAME"echo "错误: 启动服务失败 - $SERVICE_NAME"echo "警告: systemctl 命令未找到,跳过服务配置"echo "中止操作,跳过服务配置"
2025-09-02 14:42:23
1020
操作系统基于FHS标准的Linux目录结构设计:系统层次化组织与核心目录用途解析
2025-09-05
【Linux系统】U盘挂载技术操作指南:设备识别与安全读写应用
2025-09-03
【Linux系统管理】Debian/Ubuntu下deb包安装时postinst脚本执行机制与configure参数传递原理分析
2025-09-02
系统运维基于Shell脚本的日志目录自动化配置:实现/var/log下程序日志的标准化管理与权限控制
2025-09-01
Ubuntu系统中制作deb安装包的完整步骤
2025-09-01
Wireshark网络抓包工具的基本使用方法,涵盖启动软件、选择网卡、开始与停止抓包操作,并详细讲解了显示过滤器和捕获过滤器的常用语法
2025-08-29
【流媒体技术】基于FFmpeg的RTSP流构建方法:MP4文件无损推流系统设计与实现
2025-08-29
【流媒体技术】基于FFmpeg的RTSP流构建方法:MP4文件无损推流系统设计与实现
2025-08-29
Wireshark这一网络协议分析工具的基本操作方法实操
2025-08-29
网络编程基于C++的TCP粘包问题解决方案:客户端分包发送代码实现
2025-08-29
json处理方法之 CJsonObject
2019-04-23
httpServer,非常方便调试http客户端程序开发
2019-03-28
python.rar
2020-04-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅