自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

向往天空的鱼

每天进步一点点~~~

  • 博客(73)
  • 资源 (12)
  • 收藏
  • 关注

原创 C++11 shared_from_this学习

最近学习网络变成发现一些C++源码库中封装对象时会公有继承enable_shared_from_this;用一个案例进行说明,案例代码如下:#include <iostream>#include <memory>#include <stdio.h>using namespace std;class C : public enable_shared_from_this<C>{ public: shared_ptr&

2024-03-29 17:08:38 377

原创 docker搭建redis集群

docker搭建redis集群环境实验。

2023-12-21 19:46:55 1085

原创 Nginx实现tcp代理并支持TLS加密实验

nginx代理tcp服务,实现客户端与服务器之间的TLS加密。

2023-11-08 10:23:12 2083

原创 SRS源码梳理之rtmp协议解析

srs源码中rtmp协议解析主要流程梳理。

2023-05-12 15:21:33 207 1

原创 linux定时器接口timerfd案例

timerfd定时器结合epoll简单案例

2023-03-31 19:19:54 399

原创 VS2008生产动态库、静态库调用案例

VS2008生成动态库、静态库并引用案例

2023-03-09 15:38:07 1084 4

原创 内存池简单案例

比较nginx内存池的效率案例

2022-11-30 10:59:43 686

原创 狼羊菜过河(C实现)

C语言实现狼羊菜过河算法

2022-11-18 10:13:15 1636 1

原创 红黑树实现定时器

借助nginx中红黑树源码实现一个简单定时器demo

2022-11-16 10:34:02 971

原创 搭建ftp服务器注意事项

windows搭建ftp服务器注意事项

2022-10-27 17:13:54 1246

原创 DPDK简单案例

关于dpdk的简单案例

2022-09-23 16:38:57 1729

原创 epoll模型实现及惊群效应

epoll模型多进程的惊群效应现象理解

2022-09-09 14:59:29 533

原创 线程池实现简单案例(C语言)

C语言简单实现线程池案例

2022-09-07 16:20:45 1178 2

原创 指令重排案例分析

操作系统在执行进程时会发生指令重排导致出现意想不到的结果。

2022-08-18 17:24:23 363

原创 缓存一致性案例分析

案例说明操作系统的运行进程时的缓存一致性。

2022-08-18 11:52:36 258

原创 zstd压缩与lz4压缩比较

主要对zstd算法跟lz4算法进行了性能上的测试对比

2022-05-17 11:01:18 8888 1

原创 Nginx学习之ngx_cycle_s中的四维指针

好记性不如烂笔头!刚开始看完一遍nginx的源码,由于源码工程量比较大,看完之后理解了,过一段时间再回过头来看又有点遗忘。所以决定做一下记录,以便后续翻阅,如有漏错,欢迎指正。ngx_cycle_s结构体可以说是Nginx中最为重要的结构体,它贯穿着整个进程代码。本节我就该结构中的 void ****conf_ctx 四级指针进行深入学习。Nginx的所有配置结构体全部放在conf_ctx这个四维指针中。下来我们先熟悉一下源码中,ngx_init_cy...

2021-11-09 10:21:46 2411

原创 Nginx学习之内存管理

Nginx内存管理模块中,ngx_align_ptr()函数是用来对指针的设置。具体设置是:将指针按照设定的字节对齐返回对齐设置后的指针。 其实也很简单。通过代码案例来理解比较清楚的理解,代码运行环境为Linux 64位操作系统。具体代码如下:#include <stdio.h>#include <stdlib.h>#include <sys/types.h>#include <inttypes.h>#defi...

2021-11-04 10:48:21 3749 1

原创 Nginx事件模块学习之定时器

Nginx中的定时器是自己利用红黑树实现的,下来逐步分析一下nginx对定时器的实现。 首先,Nginx的工作进程是一个无限for循环,主要代码如下:static void ngx_worker_process_cycle(ngx_cycle_t *cycle, void *data){ …… // 工作进程初始化调用 ngx_worker_process_init(cycle, worker); …… // 无限循环 for ( ;; )...

2021-10-29 15:21:21 1795

原创 Nginx数据结构学习

在nginx源码中,用了大量的数据结构,现对在nginx源码中对数据结构常用的一种方法进行一些总结。 nginx的事件模块的数据结构中定义了两个变量:timer,queue;结构体如下:struct ngx_event_s { void *data; …… ngx_rbtree_node_t timer; ngx_queue_t queue; ……};其实timer变量是为了将ng...

2021-10-28 12:31:47 733

原创 Nginx事件模块学习之连接

本节主要的最近学习的nginx事件模块做一下学习总结。通过对nginx整体的学习,觉得nginx的事件模块最主要的两个结构 ngx_connection_t,ngx_event_t,ngx_connection_t结构主要存储TCP连接结构, 对应ngx_event_t结构则存储对应位置上连接的读写事件,nginx的事件模块可以配置,linux下默认用内核提供的epoll机制,本节暂不细讨论epoll机制原理。 对上述两个结构进行了简化,如下:struct ngx_c...

2021-10-27 12:14:18 455

原创 透明代理(NAT)

透明代理的实现目前实现的方式有NAT和TPROXY两种方式。此次我们借助iptables的nat表的规则对数据包进行重定向。具体配置及步骤如下。试验环境 将试验环境的配置如下:名称 IP地址 网关设置 客户端 192.168.200.184 192.168.200.111 代理服务器 192.168.200.111 192.168.200.1(内网真实网关IP) 服务器 172.16.9.66 ...

2021-10-15 16:05:31 4776

原创 Qt学习之QFile和QFileInfo

Qt项目中对文件操作是必不可少的。顾名思义:QFile是文件对象类,QFileInfo是文件信息对象类,结合例子我们看一下用法。 读的文件内容如下,以字符 “#” 或者 “;” 开始的为注释行。[Extern_Item1];名称Name=libccgext_cvi_64.so;处理数据的最大线程数,缺省为空:30DealThreads=32;数据库最大线程数,缺省为空:10DBThreads=;心跳间隔,缺省为空:120秒HeartInverva...

2021-10-08 11:16:56 1432

原创 Qt学习之定时器

定时器接口在Qt中一般有两种定时器的使用方法:1、Qt祖先类QObject提供一个虚函数供子类实现,如下:[virtual protected] void QObject::timerEvent(QTimerEvent *event),2、Qt提供一个QTimer定时器类,在类对象里面可以定义一个定时器对象去实现定时功能。实现案例...

2021-09-30 12:09:20 1273

原创 Qt学习之组合套件及鼠标事件

组合套件 本部分实现一个自定义的控件,在主界面里面添加自定义的控件,具体步骤如下。 1、首先在原本的项目中创建一个设计师界面类,如下图2、添加成功之后项目会增加三个文件,如下:3、将在 mydfine.ui 界面编辑类中创建自己的组合套件,创建一个简单的套件如下: 4、将自定义套件嵌在主界面里面,需添先加一个控件,然后提示该控件自定义控件类(注意:提升的类与本体类应该一致才会成功...

2021-09-29 18:29:41 446

原创 Qt学习之QTreeWidget、QTableWidget

1、新建一个空的QWidget类型的项目,按下图添加两个部件如下:2、在Widget类构造函数中添加如下代码: // treeWidget设置 ui->treeWidget->setHeaderLabels(QStringList()<<"陕西前10强公司简介"); QTreeWidgetItem *gsItem = new QTreeWidgetItem(QStringList()<<"陕西JD公司"); ui-&gt..

2021-09-28 13:54:04 584

原创 Qt学习之部件创建及资源添加

1. 菜单栏 最多1个 1.1 创建菜单栏:QMenuBar *bar = MenuBar(); 1.2 设置到窗口中:setMenuBar(bar); 1.3 创建菜单:QMenu *fileMenu = bar->addMenu("文件") 1.4 菜单之间添加分隔符:fileMenu->addSeparator(); 1.5 创建菜单项:QAction *newAct = file->addAc...

2021-09-26 17:13:49 2616

原创 Qt学习之信号和槽

基本概念信号与槽(Signal & Slot)是 Qt 编程的基础,也是 Qt 的一大创新。因为有了信号与槽的编程机制,在 Qt 中处理界面各个组件的交互操作时变得更加直观和简单。信号(Signal)就是在特定情况下被发射的事件,例如PushButton 最常见的信号就是鼠标单击时发射的 clicked() 信号,一个 ComboBox 最常见的信号是选择的列表项变化时发射的 CurrentIndexChanged() 信号。槽(Slot)就...

2021-09-26 15:56:45 121

原创 Linux内核代码学习笔记

数据发送流程处理总结图如下:数据包接收流程处理总结入下图:理解浅谈 对应linux内核协议栈代码1.2.13版本整体上学习了,其实也没有想象中的难理解。谈一下在学习内核代码过程中最深的感受。内核代码是用C写的,但给人更多的还是C++的封装、多态特性。 就封装来说每一层协议中对该层中用到的多个协议都是类似于封装的,对上下各层都提供了对应接收和发送的接口。 其实C++多态本质就是函数指针,而内核实现数据包各层之间的数据解析、发送(尤...

2021-09-09 17:35:13 176

原创 C 指针操作分析

最近学习Linux内核代码,两句指针代码顿时让我感觉自己的指针功底还是欠缺。在此对代码重新做了梳理、分析及记录。 源代码结构也挺简单。如下:static struct rtable *rt_base = NULL;static void rt_del(unsigned long dst, char *devname){ struct rtable *r, **rp; rp = &rt_base; // ………… 省略部分代码 while((...

2021-07-09 15:01:21 124

原创 TCP套接字状态变化梳理

Linux对于数据传输,传输层提供了可靠的TCP协议。该协议的可靠性主要体现在其许多特点,如传输数据时需建立连接、窗口检测、超速重传等。本篇主要就TCP数据传输过程中的套接字状态变化进行分析。 TCP正常的数据连接建立(三次握手)、数据传输、及连接断开(四次挥手)中套接字的状态入下图所示。上图中清晰的描述了TCP协议在连接、数据传输、断开时,客户端、服务端的套接字状态的详细变化。需要注意的有三点如下: 1、客户端的套接字状态的改变是...

2021-07-02 15:41:47 609

原创 ettercap内网DNS劫持实验

ARP(Address Resolution Protocol,地址解析协议)是一个位于TCP/IP协议栈中的网络层,负责将某个IP地址解析成对应的MAC地址。ARP欺骗是一种中间人攻击,攻击者通过毒化受害者的ARP缓存,将网关的MAC替换成攻击者的MAC,于是攻击者的主机实际上就充当了受害主机的网关,之后攻击者就可以截获受害者发出和接到的数据包,从中获取账号密码、银行卡信息等。...

2021-05-11 16:36:48 1321 1

原创 shell批处理删除特定文本

最近有个需求:定时检测某个目录下的文件个数是否超过n个,若超过则清理日期较早的m-1个文件;由于第一个文件可能被有些进程占用,因此删除日期较早的前m个除去最早的一个。具体的shell脚本如下:############################# author : lijd# date : 2021-04-20#############################!/bin/bashmain(){ path=$(date +%Y)"/"$(date +%m)"/"$

2021-04-20 10:03:56 1253

原创 C++ STL学习总结

C++ STL的三大组件:Containers, Iterators, Algorithms,即容器,迭代器和算法。容器负责存储数据,算法负责计算结果,而算法调用容器的数据必须通过迭代器去访问,而每一种容器都提供了一种访问该容器中数据的迭代器。STL主要提供有两类容器跟一类配接器,两类容器分别为:序列式容器<向量(vector)、双端队列(deque)、链表(list)>以及关联式容器<集合(set(multiset))及映射(map(multimap))>;配接器为:栈(stack

2021-02-28 16:01:24 275

原创 jsoncpp源码Linux环境编译

链接:https://pan.baidu.com/s/1v6QVf0TNMa6vF-71YubtJQ 提取码:bcu9

2021-02-24 14:16:54 1337

原创 类模板剖析

类模板中成员函数的调用时机类模板是对一批仅仅成员数据类型不同的类的抽象,基本的概念性东西本章就不再赘述。本章主要探究一下类模板中的成员函数调用时机,下来看一下代码案例。#include <iostream>using namespace std;class Person1{public: void showPerson1(){ cout << "show person1" << endl;};};class Person2{publ.

2021-02-24 11:49:27 115

原创 C++菱形继承剖析

何为菱形继承?结构如下:如上图这种菱形形状的继承关系我们称之为菱形继承,这种继承会带来一系列问题,接下来我们在代码中演示。先看如下符合菱形继承的代码:#include <iostream>using namespace std;// 动物类class animal{public: int age;};// 驴类class donkey: public animal{};// 马类class horse: public animal{};//骡子

2021-02-23 12:17:52 316

原创 C++引用作为函数的返回值

C++中引用作为函数的入参相当于指针的作用,这里包含的一些基本的引用相关的知识就不再赘述。这里我们将引用作为函数的返回值来讨论一下。引用作为函数的返回值主要注意两个点:1、函数内部不用返回局部变量的引用;2、函数的调用可以作为左值存在。以下我们通过几个案例来说明这两个点。案例一:函数内部不能返回局部变量的引用。#include <iostream>using namespace std;int& mytest1(){ int a = 10; retu

2021-02-18 11:09:02 1444 2

原创 深入理解mmap函数

背景在Linux操作系统中,进程是资源分配的基本单位。所以说每个进程间有各自独立的存储空间,但是在某些情况下各进程要相互配合来完成特定任务,这样就使得进程间通信变得非常必要。进程间通信方式有多种,当然这不是我们这节要讨论的重点,这节主要说的是mmap函数,它是通过将一块物理内存映射到多个进程的虚拟地址空间上,来完成多个进程对同一块物理内存的读写从而使得进程间能够实现通信。先看一下mmap函数的函数原型,如下:参数说明: start:映射区的开始地址,设置为...

2021-02-06 12:02:41 1995

原创 浅谈epoll的水平触发与边沿触发

概念若监听的套接字描述符上有数据可读或可写,LT模式(水平触发)和ET模式(边沿触发)两种模式对应不同的通知模式。 LT模式会不断的通知监听的套接字有数据可读或可写(对应套接字的读缓冲区不为空或写缓冲区不为满); ET模式只仅仅通知一次监听的套接字有数据可读或可写,除非缓冲区状态变化(读缓冲区由空变为非空,写缓冲区由满变为非满)才去通知相应事件。几种IO复用模型对应的监听套接字的触发模型如下:I/O模式 水平触发 边沿触发 select(), po...

2021-02-04 11:28:52 307 4

zstd-1.5.2.tar.gz + lz4-1.9.2.orig.tar.gz

zstd算法压缩包及lz4算法压缩包

2023-12-01

ffmpeg-vlc工具.rar

搭建好nginx服务器并添加rtmp模块后,需要验证流媒体服务器是否正常,所需的软件,ffmpeg是linux下的推流工具,VLC是windows下的获取服务器流的显示软件。

2020-08-10

nginx-rtmp.rar

linux环境下的nginx服务器搭建安装包,包括rtmp模块及openssl源码安装包,pcre安装包。

2020-08-05

Effective C++ 中文版第三版 高清PDF.pdf

Effective C++ 中文版第三版pdf,对于初学C++的朋友有很大的帮助。

2019-07-17

tproxy透明代理帮助文档

tproxy透明代理帮助,里面详细介绍了Tproxy的规则及socket设置及相关的用法功能,希望对你有所帮助。

2018-12-27

Apache防攻击模块代码

应用于linux下和windows下的Apache模块防攻击检测功能。

2018-12-07

深入理解Linux书籍pdf格式

深入理解Linux内核(完整版)中文版.pdf 深入理解LINUX网络技术内幕.pdf 深入理解Linux虚拟内存管理.pdf

2018-12-07

SimHash代码实现提供C接口

simhash算法分为5个步骤:分词、hash、加权、合并、降维。具体C++代码实现打包,希望对大家有帮助。

2018-12-07

Windows实用工具集

包含Afind工具、Socket工具、RegexTest工具、FtpServer工具、眼睛护士、截图工具和简易邮件服务器安装包。

2018-12-07

漏洞服务器资源

将该文件植入到服务器文件夹中,该服务器会成为所谓的靶机资源。

2018-12-07

Windows服务器搭建

window服务器搭建所需资源,该资源为园林网站的服务器资源。

2018-12-07

Windows搭建服务器压缩包

Windows环境下搭建http类型的web服务器,将该压缩包直接解压后运行"酷源码(www.kyuanma.com)ASP调试工具.exe"即可。

2018-12-07

空空如也

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

TA关注的人

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