魂•殿
程序员
展开
-
第21章 Wireshark初步使用
概述混杂模式就是接收所有经过网卡的数据包,包括不是发给本机的包,即不验证MAC地址。普通模式下网卡只接收发给本机的包(包括广播包)传递给上层程序,其它的包一律丢弃。一般来说,混杂模式不会影响网卡的正常工作,多在网络监听工具上使用。开启混杂模式入口:捕获 – 选项。原创 2024-07-01 20:57:48 · 318 阅读 · 0 评论 -
第20章 Mac+VSCode配置C++环境
Mac+VSCode配置C/C++编译环境原创 2024-07-04 07:37:42 · 233 阅读 · 1 评论 -
第19章 正则表达式 - C++
正则表达式库提供表示正则表达式的类,正则表达式是一种用于在字符串中匹配模式的微型语言。目标序列。为模式而搜索到的字符序列。这可以是二个迭代器所指定的范围、空终止字符串或一个std::string。模式。这是正则表达式自身。它确定构成匹配者。它是从带特定语法的字符串构成的std::basic_regex 类型对象。匹配的数组。关于匹配的信息可作为std::match_results类型对象获取。替换字符串。这是确定如何替换匹配的字符串。原创 2023-12-05 21:37:26 · 572 阅读 · 0 评论 -
第18章 C++11标准库(STL)
STL定义了强大的、基于模板的、可复用的组件,实现了许多通用的数据结构及处理这些数据结构的算法。其中包含三个关键组件——容器(container,流行的模板数据结构)、迭代器(iterator)和算法(algorithm)。STL容器,可将其分为四类:序列容器、有序关联容器、无序关联容器、容器适配器序列容器:有序关联容器:无序关联容器容器适配器:序列容器描述了线性的数据结构(也就是说,其中的元素在概念上” 排成一行"), 例如数组、向量和 链表。关联容器描述非线性的容器,它们通常可以快速锁定其中的元素。这种原创 2023-12-06 04:00:00 · 996 阅读 · 0 评论 -
第17章 匿名函数
如果捕获列表为[&],则表示所有的外部变量都按引用传递给lambda使用;如果捕获列表为[=],则表示所有的外部变量都按值传递给lambda使用;匿名函数构建的时候对于按值传递的捕获列表,会立即将当前可以取到的值拷贝一份作为常数,然后将该常数作为参数传递。Lambda捕获列表总结[]空捕获列表,Lambda不能使用所在函数中的变量。[names]names是一个逗号分隔的名字列表,这些名字都是Lambda所在函数的局部变量。默认情况下,这些变量会被拷贝。原创 2023-12-05 21:35:38 · 928 阅读 · 2 评论 -
第16章 网络io与io多路复用select/pool/epool
网络IO复用是指在单线程或少数线程的情况下,通过一种机制同时监控多个IO流的状态,当某个IO流有数据到达时,就通知相应的线程进行处理。其中,select是一种比较常用的IO多路复用技术,它可以同时监控多个文件描述符,当某个文件描述符就绪(一般是读就绪或写就绪)时,就会通知应用程序进行相应的操作。poll是一种常见的IO多路复用技术,它可以同时监视多个文件描述符,当其中任意一个文件描述符就绪时,就会通知应用程序进行相应的操作。原创 2023-12-13 23:22:27 · 972 阅读 · 0 评论 -
第15章 rapidjson的使用
【代码】第15章 rapidjson的使用。原创 2023-03-14 08:38:07 · 100 阅读 · 0 评论 -
第14章 Windows安装rapidjson库的安装和用法
【代码】第14章 Windows安装rapidjson库的安装和用法。原创 2022-12-13 12:53:35 · 320 阅读 · 0 评论 -
第13章 Windows安装CMake
CMake是一个被广泛使用的、开源免费并且完全跨平台的构建工具,可以用简单的语句来描述所有平台的安装(编译过程)。它能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。原创 2022-12-12 22:00:28 · 509 阅读 · 0 评论 -
第11章 回调函数的使用
将其中一个方法的入口地址作为另外一个方法的参数,通过程序运行时,调用不同的参数决定调用的方法。原创 2021-05-22 14:33:40 · 103 阅读 · 0 评论 -
第10章 Boost封装线程池
主要内容:第10.1节 简单使用Boost封装线程池,任务函数为无返回值,并且无参数的第10.2节 简单使用Boost封装线程池,任务函数为无返回值,并且有参数的,参数个数固定第10.3节 简单使用Boost封装线程池,任务函数为无返回值,并且有参数的,参数个数非固定第10.4节 简单使用Boost封装线程池,返回任务函数处理的值原创 2023-01-03 21:48:11 · 235 阅读 · 0 评论 -
第9章 windows10安装boost库
第9.1节 boost库下载和安装boost官网地址https://www.boost.org/,进入官网点击图片中框出来部分。进入下载页面,下载所需要的版本,我现在下载的版本为1.83.0,下载的是windows 版本boost_1_83_0.7z。第9.2节 boost库安装下载的文件解压之后如下图所示安装步骤a. 打开PowerShell 窗口 打开cmd 窗口,并输入powershell 指令。b. 切换至Boost 解压目录,执行如下命令c. .\bootstrap原创 2023-11-27 22:51:53 · 733 阅读 · 0 评论 -
第8章 时间戳打印(C++11)
C++11提供了chrono库,用于管理时间相关的操作及信息。// 输出:1680131456 }原创 2023-03-30 07:19:14 · 389 阅读 · 0 评论 -
第7章 左值/右值引用
可以从2个角度判断:· 左值可以取地址、位于等号左边;· 而右值没法取地址,位于等号右边。int a = 6;· a可以通过 & 取地址,位于等号左边,所以a是左值。· 6位于等号右边,6没法通过 & 取地址,所以6是个右值。再举个复杂点的例子struct A {a_ = a;} int a_;A a = A();· 同样的,a可以通过 & 取地址,位于等号左边,所以a是左值。· A()是个临时值,没法通过 & 取地址,位于等号右边,所以A()是个右值。原创 2023-03-23 22:04:26 · 110 阅读 · 0 评论 -
第6章 C++智能指针
智能指针解决的问题(1)内存泄漏:内存手动释放,使用智能指针可以自动释放(2)共享所有权指针的传播和释放,比如多线程使用同一个对象时析构问题C++11中的智能指针种类(1)unique_ptr独占对象的所有权,由于没有引用计数,因此性能较好。(2)shared_ptr共享对象的所有权,但性能略差。(3)weak_ptr配合shared_ptr,解决循环引用的问题。原创 2023-03-23 21:49:10 · 634 阅读 · 0 评论 -
第5章 设计模式
设计模式是指在软件开发中,经过验证的,用于解决特定环境下重复出现的特定问题的解决方案。简单的说设计模式是解决问题的套路。原创 2023-03-20 08:21:48 · 461 阅读 · 0 评论 -
第4章 并发操作的同步
本章的目的是学会如何使用:条件变量、线程闩、线程卡和future以等待事件。事件等待的一个小故事:坐火车下车,最理想是等到下车时候有个列车员通知一下你。下车这个就是等待事件。原创 2023-02-21 08:18:03 · 423 阅读 · 0 评论 -
第3章 测试框架GoogleTest 内存泄漏测试
测试应该是独立的和可重复的。调试一个由于其他测试而成功或失败的测试是一件痛苦的事情。googleTest通过在不同的对象运行测试来隔离测试。当测试失败时,googletest允许您单独运行它以快速测试。测试应该很好地的“组织”,并反应出测试代码的结构。googletest将相关测试分组到共享数据和子例程的测试套件中。这种通用模式很容易识别,并使测试易于维护。当人们切换项目并开始在新的代码库上工作时,这种一致性尤其有用。测试应该是可移植到和可重用的。谷歌有许多与平台无关的代码;原创 2022-12-20 10:19:58 · 601 阅读 · 1 评论 -
第2章 C++的几种构造函数
介绍C++的构造函数原创 2022-12-16 16:47:05 · 77 阅读 · 0 评论 -
第1章 线程管理-C++11/14/17/20
C++线程库还是很强大的,非常有用。原创 2023-11-24 14:45:50 · 965 阅读 · 1 评论