自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

RFFZ

做个体面的大人

  • 博客(37)
  • 问答 (2)
  • 收藏
  • 关注

原创 Ubuntu编译使用libevent

编译安装libevent

2022-09-29 22:21:51 166 1

原创 Github的使用

使用Git拉取远程库并将自己修改的内容同步到远程库

2022-08-14 18:26:32 191

原创 【Linux设置系统时间】

Linux设置系统时间和时区

2022-08-12 10:46:05 698

原创 【Linux下开启崩溃生成core】

work下 执行 source /etc/profile 生效。末尾加上 ulimit -c unlimited。

2022-08-03 14:39:56 141

原创 Ubuntu 20.04安装VSCode并调试

Ubuntu下安装VSCode可以调试一些源码,这样有助于源码的理解和阅读,是一个很好的代码查看调试的工具,下述是它的安装过程1、首先打开software搜索vscode,进行安装2、安装完成之后在命令行打开此程序3、安装C/C++扩展工具4、新建一个目录用于存放测试工程,我的测试目录为HELLO WORLD,然后工程左上角打开这个目录,然后进行如下操作:左侧添加一个main.cpp文件,然后打开该文件修改如下5、ctrl+shift+p,选择如下选项打开配置文件,在配置文件中加入下述方法

2022-05-07 16:12:49 3767

原创 【centOS7使用mariadb】

centOS7中MYSQL收费换成mariadbcentOS7安装mariadb教程yum -y install mariadb mariadb-server //安装systemctl start mariadb.service //启动systemctl enable mariadb.service //添加开机自启动进行一些安全设置mysql_secure_installation然后可以直接登录mysqlmysql -u root -p

2022-05-07 14:18:46 689

原创 Qt::WindowFlags

Qt::WindowFlags此枚举类型用于为窗口小部件指定各种窗口系统属性。它们相当不寻常,但在少数情况下是必要的。 其中一些标志取决于底层窗口管理器是否支持它们。主要类型有:Qt::Widget这是QWidget的默认类型。如果它们有父级,这种类型的部件是子部件,如果没有父控件,则为独立窗口。另请参见Qt :: Window和Qt :: SubWindow。Qt::Window表示小部件是一个窗口,无论窗口小部件是否具有父控件,通常具有窗口系统框架和标题栏。 请注意,如果部件没有父控件,则无

2022-04-07 14:38:10 180

原创 STL:编译过程

C++的编译过程预编译 g++ -E index.cpp -o index.i编译器 g++ -S index.i -o index.s汇编 g++ -c index.s -o index.o链接 g++ index.o -o index速记 ESc

2022-03-25 10:51:12 1148

原创 STL:函数模板

1.函数模板使用模板 类型参数化 编写代码可以忽略类型2.函数模板和类模板函数模板针对仅参数类型不同的函数类模板针对仅数据成员和成员函数类型不同的类3.函数模板通式template 只对其后的第一个函数有效template <class 形参名,class 形参名,......>返回类型 函数名(参数列表){函数体}4.调用函数模板的两种方式自动类型推导显示的指定类型template<class T> // template<type

2022-03-19 14:09:05 1056

原创 C++中析构函数使用虚函数的作用

虚函数是实现多态的基础,我们可以使用基类指针指向派生类对象,如果没有将基类析构函数定义为虚函数,则在释放该对象时,仅仅会调用基类的析构函数,而不会调用派生类的析构函数,导致析构不完全而产生内存泄漏。将基类析构函数定义为虚函数,并在派生类中重写了该析构函数,当我们使用基类指针指向派生类对象,释放该内存时,则会先调用派生类析构函数,再调用基类的析构函数,从而完成对该对象内存的完全释放。...

2022-01-25 14:33:14 490

原创 MySQL索引失效

1、like通配符可能导致索引失效like查询以%开头,会导致索引失效。可以有两种方式优化:使用覆盖索引把%放后面敲黑板 索引包含所有满足查询需要的数据的索引,称为覆盖索引(Covering Index)。2、字符串列使用 where 一定用引号括起来,否则索引失效3、在索引列上使用mysql的内置函数,索引失效,例如内置函数SELECT * FROM t_user WHERE UPPER(name) = ‘LEIXIAOSHUAI’;4、索引字段上使用is null或is not nul.

2021-12-07 14:20:19 780

原创 Linux查当前目录下每个目录占用磁盘大小

sudo du -h -x --max-depth=1

2021-12-07 11:07:04 425

原创 本周需要整理内容

1、数据结构 排序 查找2、多线程的创建和使用 各种创建类型的区别

2021-11-25 11:33:28 165

原创 MYSql kill 回滚

2021-11-24 10:06:11 830

原创 QT使用语言家实现中英文切换

工具 ---- 外部 ----- QT语言家然后选择 lUpdate 将代码中的翻译项更新到 ts文件中lrelease将ts文件翻译成程序使用的语言包 qm文件

2021-11-18 15:48:54 169

原创 QT中 setStyleSheet相关

color 表示前景色 就是字体颜色background-color 表示背景色

2021-11-17 16:41:22 97

原创 Linux内存清理

Linux清理内存收藏中有更加详细的信息1)清理pagecache(页面缓存) echo 1 > /proc/sys/vm/drop_caches or sysctl -w vm.drop_caches=12)清理dentries(目录缓存)和inodes echo 2 > /proc/sys/vm/drop_caches or sysctl -w vm.drop_caches=23)清理pagecache、dentries和inodes echo 3 > /proc/s

2021-11-11 10:09:27 240

原创 curl访问不到图片

CURL返回成功不进入回调公司业务由阿里云切换到华为云,curl抓不到图片,将curl做如下修改,就可成功抓到图片了

2021-10-14 17:20:24 440

原创 ZLMediaKit中多线程

ZLMediaKit中运行架构在main函数中,一下语句是设置线程池中的线程个数 //设置poller线程数,该函数必须在使用ZLToolKit网络相关对象之前调用才能生效 EventPollerPool::setPoolSize(threads);在main中创建了很多的TcpServer,其构造函数如下,其中会初始化当前TcpServer对象的** _poller**成员。其中 EventPollerPool::Instance()会返回一个静态的EventPollerPool对象对于

2021-08-09 16:28:03 399

原创 ZLMediaKit中rtmp流推拉的整体过程

ZLMediaKit中rtmp流推拉的整体过程在最开始推流端连上来之后,建立一个 RtmpSession,接下来就是在函数RtmpSession::onRtmpChunk中调用_publisher_src->onWrite(std::move(packet));首先进入_demuxer->inputRtmp(pkt) 将packet写入 其他的 rtsp hls ts等等,接下来调用RtmpMediaSource::onWrite(std::move(pkt)) void onWrit

2021-08-04 16:30:52 1784

原创 ZLMediaKit中RTSP的创建过程

ZLMediaKit中RTSP的创建过程首先是初始化_rtsp,在 publish消息中的setProtocolTranslation,在_muxer(MultiMediaSourceMuxer)里面的_muxer(MultiMuxerPrivate)的构造函数中,创建了_rtsp(RtspMediaSourceMuxer),在_rtsp的构造函数中,创建了_media_src (RtspMediaSource),并将RtpRing的delegate设置为_media_src RtspMedia

2021-07-28 15:19:51 1702

原创 ZLMediaKit中_all_track_ready置为true的过程

ZLMediaKit中RtmpSession的解析继承来自以下类 public TcpSession 会话 public RtmpProtocol 协议 public MediaSourceEvent 事件创建video track的地方,根据我实际测试的视频,此处是先创建一个void RtmpDemuxer::makeVideoTrack(const A

2021-07-21 17:08:13 584

原创 ZLMediaKit中 RtmpSession::onCmd_publish分析

RtmpSession::onCmd_publish分析RTMP推流消息中body的格式格式commandName(str)transactionID(num)commandObject(obj)publishName(str)publishType(str)例如“publish”5null“rff?123”live/record/append/recordvoid RtmpSession::onCmd_publish(AMFDecoder &de

2021-07-19 11:57:29 326

原创 ZLMediaKit中RTMP消息解析

ZLMediaKit中RTMP消息解析在接收到完整的Chunck之后,Chunck的data部分使用下述函数进行解析,一般的消息会在当前函数进行解析完成,比如MSG_SET_CHUNK,否则会进入onRtmpChunk进一步解析从目前的测试情况来看,ZLMediaKit中的server端接收的消息顺序是 MSG_SET_CHUNCK connect releaseStream(不响应) FCPublish(不响应) createStream _checkbw(不响应) publis

2021-07-16 16:02:55 355

原创 ZLMediaKit中rtmp块头解析

RTMP数据格式RTMP消息RTMP消息由消息头和载荷两部分组成消息头值长度含义message type1byte表示消息类型payload length3byte表示荷载的字节数,big-endian格式timestamp4byte表示消息的时间戳,big-endian格式stream id3byte表示消息流ID,big-endian格式message type的含义 1-7的消息ID用于协议控制消息 8、9的消息分别用于

2021-07-16 11:45:21 187

原创 大小端和指针的关系

大小端的定义小端:数据低位存在低地址中,数据的高位存在高地址中大端:数据低位存在高地址中,数据的高位存在低地址中指针和大小端的结合使用如下图所示,大小端的存储如下,如果是用一个指针指向存储的这块内存,不管是大端还是小端,指向的都是这块内存的最地位地址。正是由于指向的是最低位地址,正好可以使用这个特性,来检查机器是大端还是小端。int main(){ int a = 1; char *pa =(char*) &a; if (*pa == 1) printf("小端\n");

2021-07-09 17:25:01 891

原创 ZLMediaKit服务端RTMP握手过程

ZLMediaKit之RTMP连接过程RTMP握手过程RTMP协议握手过程中,服务端和客户端都会发送三个包,客户端是C0、C1、C2,服务端是S0、S1、S2握手的顺序如下:1、客户端开始发送C0,C12、客户端必须收到S1后,才发送C23、客户端必须收到S2后才开始发送其他信息(控制信息和音视频数据)4、服务器要等收到C0才能发送S0和S15、服务器必须等C1后才能发送S2 6、服务器必须等收到C2之后才能发送其他数据(控制信息和音视频数据)简化如下client–> se

2021-07-09 16:38:26 508

原创 ZLMediaKit配置文件意义

ZLMediaKit配置文件意义[api]#是否调试http api,启用调试后,会打印每次http请求的内容和回复apiDebug=1#一些比较敏感的http api在访问时需要提供secret,否则无权限调用#如果是通过127.0.0.1访问,那么可以不提供secretsecret=035c73f7-bb6b-4889-a715-d9eb2d1925cc#截图保存路径根目录,截图通过http api(/index/api/getSnap)生成和获取snapRoot=./www/snap/

2021-07-02 11:03:47 1814 1

原创 Libevent源码分析-event_init

大体上看event_init函数就是生成了一个event_base的指针返回给调用者来使用event.c(file)struct event_base *event_init(void){ struct event_base *base = event_base_new_with_config(NULL); if (base == NULL) { event_errx(1, "%s: Unable to construct event_base", __func__); return

2021-04-29 10:11:06 167

原创 libevent源码分析

libevent源码分析结构体event_basestruct event_base { /** Function pointers and other data to describe this event_base's * backend. */ const struct eventop *evsel; /** Pointer to backend-specific data. */ void *evbase; /** List of changes to tell backend

2021-04-26 17:35:01 149

原创 Unicode字符集和多字符集

两个字符集的关系由于各国语言的加入,ASCII已经不能满足信息交流的需要,因此,为了能够表示其它国家的文字,各国在ASCII的基础上制定了自己的字符集,它们正式的名称应该是MBCS(Multi-Byte Chactacter System,即多字节字符系统)。两个字符集相关类型的说明类型说明UnicodeANSI通用类型字符WCHARCHARTCHAR字符...

2020-02-27 12:35:33 230

原创 高级控件应用

高级编辑控件和旋转按钮第一节:旋转按钮(CSpinButtonCtrl)一个旋转按钮由一对方向相反的箭头按钮组成,用户单击其中一个按钮增加或减小数值。一个旋转按钮通常与一个相伴的控件联合使用,这个控件称为“伙伴窗口”,一般为EditCtrl。一个旋转按钮控件可以紧靠在它的伙伴窗口的边或者嵌入内部,两个看起来就像一个单一的控件。关于旋转按钮 属性 说明a)Orientation:按钮滚动方...

2020-02-26 22:26:12 315

原创 GDI绘图

通过HDC句柄绘图的三种方式标准客户区绘图必须是在WN_PAINT消息回调时才执行,调用BeginPaint函数获取标准客户区绘图句柄进行绘图,最后调用EndPaint函数释放PAINTSTRUCT ps;HDC hDC = BeginPaint(hwndDlg,&ps);Ellipse(hDC,0,0,40);EndPaint(hwndDlg,&ps);临时...

2020-02-15 15:36:51 227

原创 MFC系统对话框

系统对话框1、CFileDialog选择要打开或者保存的文件2、CColorDialog选择颜色2、CFontDialog选择字体3、CPrintDialog打印方式设置4、CPageSetupDialog打印页面设置5、CFindReplaceDialog在文本中查找或替换...

2020-02-11 20:38:01 247

原创 MFC相关知识

这里写自定义目录标题SendMsg和PostMsg模态对话框和非模态对话框新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导...

2020-02-09 12:19:46 202

原创 epoll的本质经典剖析讲解

转载自:https://www.toutiao.com/i6683264188661367309/目录一、从网卡接收...

2019-11-07 17:10:07 94

原创 C++调用mysql

C++调用mysql```css#include "include/mysql.h" //引入mysql头文件//包含附加依赖项,也可以在工程--属性里面设置#pragma comment(lib,"wsock32.lib")#pragma comment(lib,"libmysql.lib")MYSQL mysql; //mysql连接MYS...

2019-10-25 16:05:51 227

空空如也

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

TA关注的人

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