自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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目录结构设计:系统层次化组织与核心目录用途解析

内容概要:本文系统介绍了Linux系统的目录结构设计,遵循文件系统层次结构标准(FHS),详细解析了各主要目录的功能与设计原理。文章从根目录开始,依次讲解了/boot、/bin、/sbin、/lib等系统启动和核心命令相关目录,/etc配置文件中心,/usr和/opt应用程序存放区域,/var和/run可变数据与运行时文件存储,/tmp临时文件目录,以及/home、/root用户目录和/dev、/media、/mnt等设备与挂载点目录。同时阐述了目录结构设计背后的逻辑分离、权限控制、数据可共享性与可变性区分等核心思想。; 适合人群:具备基础Linux使用经验的初学者、系统管理员及开发人员,尤其适合希望深入理解Linux系统结构的技术人员; 使用场景及目标:①帮助用户理解Linux各目录的用途及设计原则;②指导合理规划系统分区与文件布局;③为系统维护、故障排查和安全配置提供结构化知识支持; 阅读建议:建议结合实际Linux系统操作对照学习,通过查看各目录内容加深理解,并注意现代发行版中部分目录(如/bin与/usr/bin)的符号链接变化。

2025-09-05

【Linux系统】U盘挂载技术操作指南:设备识别与安全读写应用

内容概要:本文详细介绍了在Linux系统中如何将U盘挂载到系统并进行安全卸载的完整流程。文章通过具体步骤说明了如何使用lsblk和fdisk命令识别U盘设备名,创建挂载点目录,执行mount命令挂载U盘,以及使用umount命令卸载设备以确保数据安全。同时,提供了插入U盘前后对比系统磁盘状态的方法,帮助用户准确识别U盘设备,避免误操作。整个过程强调了操作的安全性与准确性。; 适合人群:具备基本Linux命令行操作能力的初学者或需要在Linux环境下使用外部存储设备的用户;适合系统管理员、开发人员及对Linux系统操作感兴趣的学习者; 使用场景及目标:①在无图形界面的Linux服务器或终端环境中挂载U盘进行数据传输;②学习Linux磁盘管理基础知识,掌握设备识别、挂载与卸载的核心命令;③实现U盘数据的备份、迁移或系统维护任务; 阅读建议:建议读者在实际操作前先理解各命令的作用,尤其是lsblk的输出含义和RM、SIZE等关键字段的识别方法。操作时务必确认设备名称正确,避免误挂载导致系统问题。可结合虚拟机环境进行练习,确保掌握后再在生产环境中应用。

2025-09-03

【Linux系统管理】Debian/Ubuntu下deb包安装时postinst脚本执行机制与configure参数传递原理分析

内容概要:本文详细说明了在Debian/Ubuntu系统中安装deb包时,postinst维护脚本的触发机制与参数传递规则。重点介绍当执行apt install或dpkg -i命令安装软件包后,系统会自动调用postinst脚本,并以configure作为第一个参数($1)来执行,用于完成服务配置、systemd重新加载、启用并启动服务等操作。文章还列出了不同包管理操作所触发的对应脚本及参数,如remove、purge、abort-upgrade等,并通过实际脚本代码展示了case语句如何根据传入参数执行不同逻辑。; 适合人群:熟悉Linux系统运维、软件打包或Shell脚本开发的技术人员,具备一定Debian/Ubuntu系统使用经验的中初级开发者或运维工程师; 使用场景及目标:①理解deb包安装过程中维护脚本的执行机制;②掌握postinst脚本中如何通过$1参数判断当前操作类型并执行相应逻辑;③为自定义deb包编写可靠的安装后配置脚本提供实践指导; 阅读建议:此资源侧重于deb包维护脚本的实际应用,建议结合Debian包规范文档和systemd服务管理知识进行深入学习,可在测试环境中动手编写和调试postinst脚本以加深理解。

2025-09-02

系统运维基于Shell脚本的日志目录自动化配置:实现/var/log下程序日志的标准化管理与权限控制

内容概要:本文介绍了一个Shell脚本,用于将应用程序日志统一写入 `/var/log/程序名称` 目录下,并设置合适的权限与所有者,以实现日志的规范化管理。文章详细解释了将日志存放于 `/var/log` 目录下的五大优势:遵循文件系统层次标准(FHS)、便于集中化管理与维护、支持日志轮转与集中收集分析、提升安全性和权限控制、合理组织文件系统结构以防止关键分区被日志占满,同时符合Unix系统长期以来的传统与约定。脚本内容包括创建日志目录、修改所有者、设置权限及以指定用户身份启动程序等操作。; 适合人群:Linux系统管理员、后端开发人员、运维工程师以及对日志管理和Shell脚本编写有兴趣的技术人员;具备基本Linux操作和脚本编写能力者更佳。; 使用场景及目标:①规范应用程序日志存储路径,提升系统可维护性;②配合logrotate等工具实现自动日志轮转;③便于集成Fluentd、Logstash等日志采集系统;④增强日志安全性与审计能力;⑤避免日志文件占用根分区导致系统故障。; 阅读建议:建议读者结合实际项目环境,修改脚本中的用户名、组名、应用名和路径后进行测试使用,同时可进一步扩展脚本功能,如添加错误处理、日志目录自动创建、多服务支持等,以适应更复杂的生产需求。

2025-09-01

Ubuntu系统中制作deb安装包的完整步骤

内容概要:本文详细介绍了在Ubuntu系统中制作deb安装包的完整步骤,涵盖目录结构创建、控制文件control的编写、postinst安装后脚本的配置以及可执行脚本的部署。通过设定特定目录结构(如DEBIAN、usr/local、usr/bin等),并在DEBIAN目录下编写control文件定义包信息(如包名、版本、架构、维护者、描述等),同时提供postinst脚本用于安装后自动创建日志目录并设置权限和所有者。此外,还说明了如何编写启动脚本并将其放置到系统路径中,实现命令行直接调用。最后介绍了使用dpkg-deb命令打包、apt安装与卸载deb包的方法。; 适合人群:熟悉Linux系统操作、具备一定Shell脚本基础,从事软件打包或运维相关工作的开发人员或系统管理员;初级到中级技术水平的Ubuntu使用者;; 使用场景及目标:①为自研应用程序制作标准deb安装包,便于在Debian系Linux系统中分发和部署;②自动化应用安装后的配置流程,如目录创建、权限设置等;③实现应用程序命令行便捷调用;④学习deb包结构与Linux软件包管理机制; 阅读建议:操作前需搭建Ubuntu测试环境,严格按照文档路径和格式要求执行,注意control文件结尾换行、脚本可执行权限等问题,建议边实践边调试,结合B站“大衣哥编程”视频资源加深理解。

2025-09-01

Wireshark网络抓包工具的基本使用方法,涵盖启动软件、选择网卡、开始与停止抓包操作,并详细讲解了显示过滤器和捕获过滤器的常用语法

内容概要:本文介绍了Wireshark网络抓包工具的基本使用方法,涵盖启动软件、选择网卡、开始与停止抓包操作,并详细讲解了显示过滤器和捕获过滤器的常用语法,如按IP地址、端口号、协议类型进行过滤。文章还说明了如何通过三大面板查看数据包的分层信息,使用TCP流追踪会话内容,以及通过统计功能分析协议分布和通信端点。此外,提供了搜索数据包、保存抓包文件等实用技巧,并附有学习资源链接,便于用户深入掌握抓包实操技能。; 适合人群:具备基础网络知识,从事网络运维、安全分析或开发工作的技术人员,尤其是初学者和工作1-3年的IT从业者; 使用场景及目标:①排查网络异常流量或延迟问题;②分析特定协议(如HTTP、DNS、TCP)通信过程;③学习网络协议交互原理,提升抓包与协议分析能力; 阅读建议:建议结合实际网络环境边操作边学习,重点练习过滤器编写与TCP流追踪功能,配合B站视频资源加深理解,并通过反复实践提升分析效率。

2025-08-29

【流媒体技术】基于FFmpeg的RTSP流构建方法:MP4文件无损推流系统设计与实现

内容概要:本文介绍了如何使用FFmpeg工具将本地MP4视频文件以原始编码格式“伪实时”推流到RTSP服务器,构建属于自己的RTSP流。通过命令行参数详解,包括-re(按原始速率读取)、-i指定输入文件、-c copy实现流复制(不重新编码)、-f rtsp指定输出格式为RTSP,最终将流推送至rtsp://localhost:8554/mystream地址。整个过程无需转码,保证视频质量无损且对CPU开销极低,适用于本地测试或开发调试场景。同时强调了运行该命令的前提是需有运行在指定地址的RTSP服务器接收推流。; 适合人群:具备基础音视频知识及命令行操作能力,从事多媒体开发、流媒体测试或相关技术研究的1-3年经验研发人员;也适合对RTSP推流原理感兴趣的初学者。; 使用场景及目标:①在缺乏真实摄像头推流环境下搭建测试用RTSP流;②理解FFmpeg推流机制及RTSP协议工作原理;③实现本地视频文件模拟直播源进行播放器或服务器功能验证;④学习流媒体传输中的编码、封装与网络推送过程。; 阅读建议:此资源以实践为导向,建议结合实际环境操作,提前部署RTSP服务器(如文章推荐的B站教程),并使用VLC等播放器验证推流结果,深入理解各参数作用及流媒体传输机制。

2025-08-29

网络编程基于长度前缀的TCP粘包处理:客户端C++代码实现与发送机制设计

【网络编程】基于长度前缀的TCP粘包处理:客户端C++代码实现与发送机制设计

2025-08-29

【流媒体技术】基于FFmpeg的RTSP流构建方法:MP4文件无损推流系统设计与实现

内容概要:本文介绍了如何使用FFmpeg工具将本地MP4视频文件以伪实时方式推流为RTSP流。通过命令行指令,结合-re、-i、-c copy、-f rtsp等关键参数,实现不重新编码、低CPU消耗、无损质量的流媒体推送。核心原理是利用FFmpeg按原始帧率读取视频,直接复制音视频数据包并封装为RTSP格式,推送到指定RTSP服务器地址。文章强调了必须事先存在一个运行中的RTSP服务器作为接收端,并简要说明了各参数的作用与技术逻辑。; 适合人群:具备基础音视频知识及命令行操作能力,从事流媒体、安防监控或直播相关工作的开发人员或技术爱好者;适合工作1-3年、希望理解RTSP推流机制的工程师。; 使用场景及目标:①在缺乏真实摄像头源时构建测试用RTSP流;②快速搭建本地流媒体环境用于播放器或平台调试;③学习FFmpeg在流媒体处理中的实际应用,理解推流、编码复用、协议封装等核心概念。; 阅读建议:此资源侧重实践操作,建议结合本地环境动手实验,提前部署RTSP服务器(如Live555、GStreamer等),使用提供的命令结构替换实际文件路径和流地址进行测试,并通过VLC等播放器验证推流结果,以深入掌握RTSP流的构建全过程。

2025-08-29

Wireshark这一网络协议分析工具的基本操作方法实操

内容概要:本文档详细介绍了Wireshark这一网络协议分析工具的基本操作方法。包括启动方式和网卡选择,即在Windows系统中启动Wireshark并选择要监听的网卡;阐述了开始、停止以及暂停抓包的操作流程;讲解了基本过滤技巧,分为显示过滤器(用于筛选已捕获的数据包)和捕获过滤器(用于限定捕获的数据范围),并给出多个常用过滤条件示例;还介绍了数据包分析的基础知识,如三个主要面板的功能(数据包列表、数据包详细信息、原始数据)、关键信息查看方式(展开各协议层、跟踪数据流、统计汇总信息);最后提供了一些实用技巧,如搜索数据包内容、查看完整会话、查看协议占比以及保存抓包文件的方法。; 适合人群:对网络协议分析有一定兴趣或需求的技术人员,尤其是初学者。; 使用场景及目标:①希望掌握Wireshark这款强大的网络抓包分析工具的使用方法;②能够熟练运用各种过滤器快速定位所需数据包,提高工作效率;③学会解读数据包中的关键信息,辅助进行网络故障排查、安全审计等工作。; 其他说明:更多抓包实战技巧可以浏览相关视频内容或访问提供的网站链接。

2025-08-29

网络编程基于C++的TCP粘包问题解决方案:客户端分包发送代码实现

内容概要:本文提供了C++环境下TCP客户端代码的实现,重点解决TCP通信中的粘包问题。通过在发送数据时先发送数据长度(使用htonl转换为网络字节序),再发送实际数据内容,确保服务端能够正确解析每条独立消息。代码基于Winsock实现,包含完整的套接字创建、连接服务器及数据发送流程,并通过循环发送多条消息验证粘包解决方案的有效性。该方法需配合同样遵循长度前缀协议的服务端,才能实现可靠的数据传输。; 适合人群:具备C++基础和网络编程基础知识,熟悉Socket编程的开发人员或学习者,尤其是对TCP协议特性及常见问题(如粘包)感兴趣的中初级开发者; 使用场景及目标:①理解TCP粘包问题的成因及解决方案;②掌握通过消息长度前缀法实现数据分包的编程技巧;③在实际项目中构建可靠的TCP客户端与服务端通信机制; 阅读建议:此资源侧重于客户端实现,建议结合对应的服务端代码和抓包工具(如Wireshark)进行调试与验证,深入理解TCP数据传输过程及协议设计原理。

2025-08-29

json处理方法之 CJsonObject

通常c++对于json处理,标注库没有提供相关方法。 boost 有相关方法,但是需要编译boost库,比较麻烦。 而源码级利用CJsonObject.hpp,比较轻量,能解决一般的json解析组装等。

2019-04-23

机器学习大规模训练人脸图片集

机器学习人脸图片识别前需要大规模图片训练,方可后续识别具体的图片匹配哪一个。

2018-09-09

c++网络开发libcurl

可以编译源码,生成相关库,以便c++程序来调用,实现http文件等传输。

2019-03-28

httpServer,非常方便调试http客户端程序开发

作为httpServer,双击后即可搭建httpServer服务器了,拖动文件后,即可有唯一的地址,我们在开发客户端程序时,非常方便调试。

2019-03-28

python.rar

python 核心知识点学习讲义(含爬虫,数据分析,数据绘图), 基本的多线程,文件操作,正则表达式,异常处理,从最基础的学期,逐步深入,到后面的爬虫,数据分析等均包含了。

2020-04-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除