自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

木子皿--啥都不会的菜鸟

努力学习,希望有朝一日能够从事后台服务器开发相关工作!

原创 IP协议的输出处理

文章目录1 IP协议的输出处理1.1 原理介绍1.2 代码实现 1 IP协议的输出处理 1.1 原理介绍 IP数据包的封装: IP包头部数据格式(RFC791): 1.2 代码实现 代码组织如下: xnet_tiny.h中添加如下代码: #define XNET_VERSION_IPV4 ...

2020-09-29 16:43:38 44 0

原创 音视频编解码的国际标准

文章目录1 音视频编解码的国际标准1.1 音视频编解码相关的组织1.2 H.265介绍 1 音视频编解码的国际标准 1.1 音视频编解码相关的组织 音视频编解码主要有如下三大组织推动并发展: ITU(国际电信联盟)。 ISO/IEC。 JVT(Joint Video Team,视频联合工作组)。...

2020-09-29 14:06:11 52 0

原创 IP协议的输入处理

文章目录1 原理概述2 代码实现 1 原理概述 先来看一下IP协议所处的位置: IP协议的功能: IP数据包的格式: 2 代码实现 先来看一下工程组织结构: xnet_tiny.h中添加如下代码: #pragma pack(1) typedef struct _xip_hdr_t ...

2020-09-26 15:04:54 48 0

原创 offsetof宏和container_of宏

文章目录1 offsetof宏1.1 宏的作用1.2 编译器做了什么 1 offsetof宏 1.1 宏的作用 offsetof用于计算TYPE结构体中MEMBER成员的偏移位置。 1.2 编译器做了什么 注意: 在操作系统的环境下,读和写0地址的内容都是非法的,会导致程序异常停...

2020-09-26 10:41:54 76 0

原创 FFMpeg的基本用法

文章目录1 提取音视频流1.1 提取音频流1.2 提取视频流2 截取音视频片段 1 提取音视频流 1.1 提取音频流 ffmpeg431.exe -i ande_302.mp4 -vn -acodec copy -f mp4 -y ande_302-vn.mp4 1.2 提取视频流 ffmpeg...

2020-09-26 10:36:20 67 0

原创 驱动设计的思想:面向对象/分层/分离

文章目录1 面向对象2 分层3 分离 1 面向对象 字符设备驱动程序抽象出一个 file_operations 结构体; 我们写的程序针对硬件部分抽象出led_operations 结构体。 2 分层 上下分层,比如我们前面写的 LED 驱动程序就分为 2 层: ① 上层实现硬件无关的操作,比如...

2020-09-26 10:02:45 43 0

原创 FFMpeg的基本介绍

文章目录1 FFMpeg的基本概念1.1 FFMpeg是什么1.2 FFmpeg 的组成1.3 FFmpeg 主要功能 1 FFMpeg的基本概念 1.1 FFMpeg是什么 FFmpeg 是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。 采用 LGPL 或 GPL 许可...

2020-09-25 09:59:24 80 0

原创 音频的基本概念

文章目录1 音频的基本概念1.1 音频的概念1.2 音频相关的术语 1 音频的基本概念 1.1 音频的概念 音频数据的承载方式最常用的是脉冲编码调制 脉冲编码调制,即 PCM。 在自然界中, 声音是连续不断的,是一种模拟信号,那怎样才能把声音保存下来呢? 那就是把 声音数字化,即转换为数字信号。 ...

2020-09-24 16:35:45 57 0

原创 视频的基本概念

文章目录1 视频的基本概念1 视频的概念1.2 视频相关的术语 1 视频的基本概念 1 视频的概念 由于人类眼睛的特殊结构,画面快速切换时,画面会有残留( 视觉暂留),感觉起来就是连贯的动作。所以 ,视频就是由一系列图片构成的。 视频是什么? 视频(Video)泛指将一系列静态影像以电信号的方式加...

2020-09-24 15:01:43 43 0

原创 ARP的超时重新请求

文章目录1 原理2 代码实现 1 原理 问题:ARP表项是否一直有效? 实现原理如下: 2 代码实现 先看下代码组织结构: prot_pcap.c中增加如下代码: /** * 获取自程序启动以来,过去了多长时间 * @return 程序的系统时间 */ const xnet_time...

2020-09-23 17:28:25 82 0

原创 LED驱动硬件操作

文章目录1 LED驱动操作硬件1.1 怎么写 LED 驱动程序?1.2 ioremap函数介绍2 代码实现 1 LED驱动操作硬件 1.1 怎么写 LED 驱动程序? 详细步骤如下: ① 看原理图确定引脚,确定引脚输出什么电平才能点亮/熄灭 LED ② 看主芯片手册,确定寄存器操作方法:哪些寄存器...

2020-09-23 14:53:44 61 0

原创 DualLinkList

文章目录1 单链表的缺陷![在这里插入图片描述](https://img-blog.csdnimg.cn/2019030510214774.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0c...

2020-09-22 17:58:57 61 0

原创 变量初始化

文章目录1 C++11中新增变量初始化方式 1 C++11中新增变量初始化方式 代码如下: #include <iostream> using namespace std; #define USE /* 测试C++11中的变量初始化 */ static void test_v...

2020-09-22 11:49:41 33 0

原创 LED驱动框架

1 LED驱动框架 1.1 回顾字符设备驱动程序框架 1.2 对于 LED 驱动,我们想要什么样的接口? 1.3 LED 驱动要怎么写,才能支持多个板子?分层 把驱动拆分为通用的框架(leddrv.c)、具体的硬件操作(board_X.c): 以面向对象的思想,改进代码: 抽象出一个结构体:...

2020-09-22 11:24:39 58 0

原创 ARP输入处理

文章目录1 ARP输入原理1.1 原理介绍1.2 代码实现 1 ARP输入原理 1.1 原理介绍 收到ARP包时该如何处理? 处理流程: 实现原理: 1.2 代码实现 代码结构: xnet_tiny.h添加如下代码: #define XARP_ENTRY_FREE 0 ...

2020-09-19 17:23:12 228 0

原创 CircleList

文章目录1 循环链表的实现1.1 什么是循环链表1.2 循环链表的逻辑构成1.3 循环链表的继承层次结构1.4 循环链表的实现思路1.5 循环链表的实现要点2 代码实现 1 循环链表的实现 1.1 什么是循环链表 概念上: 任意数据元素都有一个前驱和一个后继。 所有的数据元素的关系构...

2020-09-19 14:00:38 96 0

原创 HTTP协议简介

文章目录1 HTTP协议简介1.1 HTTP协议简介1.2 客户端请求1.3 服务端响应 1 HTTP协议简介 1.1 HTTP协议简介 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传...

2020-09-17 14:43:18 54 0

原创 无回报ARP的生成

文章目录1 无回报ARP的生成1.1 原理概述1.2 代码实现 1 无回报ARP的生成 1.1 原理概述 1.2 代码实现 xnet_tiny.h中添加如下代码: #pragma pack(1) #define XARP_HW_ETHER 0x1 ...

2020-09-17 14:30:17 52 0

原创 SharedPointer

文章目录1 继承关系类图![在这里插入图片描述](https://img-blog.csdnimg.cn/20190227085332118.png)2 SharedPointer设计要点3 代码实现 1 继承关系类图 2 SharedPointer设计要点 SharedPointer肯...

2020-09-16 14:36:13 125 0

原创 文件锁

文章目录1 文件锁1.1 文件锁概述1.2 示例代码 1 文件锁 1.1 文件锁概述 并发对文件I/O操作的影响,解决办法? 文件锁 用法: man 2 fcntl。 头文件: #include <unistd.h> #include <fcntl.h> 函数定义: ...

2020-09-16 10:29:02 46 0

原创 ARP初始化

文章目录1 ARP初始化1.1 原理概述1.2 实现原理1.3 代码实现 1 ARP初始化 1.1 原理概述 解决办法: ARP实例: 1.2 实现原理 需要考虑如下问题: ARP表象定义如下: 1.3 代码实现 xnet_tiny.h中添加如下代码: #define XNET_IPV...

2020-09-14 16:42:53 42 0

原创 SmartPointer

文章目录1 继承关系类图2 代码实现 1 继承关系类图 2 代码实现 SmartPointer.h #ifndef SMARTPOINTER_H #define SMARTPOINTER_H #include "pointer.h" namespace LemonLib...

2020-09-14 09:50:41 64 0

原创 Pointer

文章目录1 智能指针的设计方案2 代码实现 1 智能指针的设计方案 继承关系类图: 设计方案: Pointer是智能指针的抽象父类(模板)。 纯虚析构函数virtual ~Pointer() = 0;。 重载operator -&amp;gt; ();。 重载oper...

2020-09-14 09:50:26 74 0

原创 以太网输入输出处理的实现

文章目录1 以太网输入输出处理的实现1.1 实现原理1.2 代码实现 1 以太网输入输出处理的实现 1.1 实现原理 先看下数据包的传递过程: 以太网数据包格式(RFC894): 上面有误,正确的包格式如下: 字节对齐的特殊处理: 大小端转换: 1.2 代码实现 代码结构如下: ...

2020-09-12 14:53:19 32 0

原创 以太网驱动的封装

文章目录1 以太网驱动的封装 1 以太网驱动的封装 项目结构: xnet_tiny.h添加错误码的定义及函数声明: typedef enum _xnet_err_t { XNET_ERR_OK = 0, XNET_ERR_IO = -1, }xnet_err_t; xnet_...

2020-09-11 16:16:35 50 0

原创 StaticLinkList

文章目录1 静态单链表的出现原因2 静态单链表的实现思路3 继承关系图4 代码实现 1 静态单链表的出现原因 如果需要频繁的删除元素,并且数据元素的最大个数固定,我们该怎么选择线性表呢? 很明显,当需要频繁的删除元素时,使用单链表是明智的选择。但是目前的单链表却又如下的缺陷:当我们长时间使用...

2020-09-10 16:53:14 80 0

原创 数据包结构定义

文章目录1 数据包结构定义1.1 数据包的结构1.2 代码实现 1 数据包结构定义 1.1 数据包的结构 通信过程中数据包的传递如下: 我们改如何定义数据包结构呢? 数据包长度不固定,可长可短。 需支持头部的添加和移除。 简单易于使用。 数据包结构如下: 1.2 代码实现 首先看下整个工...

2020-09-09 15:44:54 74 0

原创 本地套接字编程

文章目录1 本地字节流套接字1.1 示例代码2 本地数据报套接字2.1 示例代码 1 本地字节流套接字 1.1 示例代码 服务端: #include "lib/common.h" int main(int argc, char **argv) { if (argc...

2020-09-07 14:39:04 57 0

原创 UDP编程

文章目录1 使用UDP进行编程1.1 UDP编程模型1.2 recvfrom函数 和 sendto函数1.3 UDP客户端和服务端例子 1 使用UDP进行编程 1.1 UDP编程模型 我们看到服务器端创建 UDP 套接字之后,绑定到本地端口,调用 recvfrom 函数等待客户端的报文发送;客户...

2020-09-07 14:28:28 36 0

原创 TCP的三次握手和四次挥手

文章目录1 三次握手1.1 三次握手的时序图1.2 为什么是三次握手2 四次挥手 1 三次握手 1.1 三次握手的时序图 TCP 三次握手的解读: 我们先看一下最初的过程,服务器端通过 socket,bind 和 listen 完成了被动套接字的准备工作,被动的意思就是等着别人来连接,然后调用 ...

2020-09-07 14:16:27 56 0

原创 使用C++访问MySQL数据库(VS2019)

文章目录1 使用C++访问MySQL数据库(VS2019) 1 使用C++访问MySQL数据库(VS2019) 在VS2019中使用C++访问MySQL数据库的方式如下: 第一步: 打开mysql的安装目录,默认安装目录如下:C:\Program Files\MySQL\MySQL Server ...

2020-09-07 09:42:37 66 0

原创 MySQL中的存储引擎

文章目录1 存储引擎概述1.1 什么是存储引擎1.2 MySQL支持的存储引擎2 常见的存储引擎2.1 InnoDB存储引擎2.2 MyISAM存储引擎2.3 MEMORY存储引擎2.4 存储引擎的对比 1 存储引擎概述 1.1 什么是存储引擎 MySQL中存在多种存储引擎的概念。简而言之,存储引...

2020-09-07 08:57:14 123 0

原创 LinkList

文章目录1 线性表的链式存储结构1.1 链式存储的定义1.2 链式存储逻辑结构1.3 专业术语的统一1.4 链表中的基本概念1.5 单链表中的结点定义1.6 单链表的内部结构1.7 在目标位置处插入数据元素1.8 在目标位置处删除数据元素 1 线性表的链式存储结构 顺序存储结构的最大问题就是插...

2020-09-05 09:37:57 102 0

原创 DynamicArray

文章目录1 DynamicArray设计要点2 继承关系图和接口实现3 代码实现4 代码优化 1 DynamicArray设计要点 类模板 动态确定内部数组空间的大小 实现函数返回数组长度 构造拷贝和赋值操作 2 继承关系图和接口实现 继承关系图 接口实现 t...

2020-09-01 10:39:36 174 0

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