AndreaDO

导航

03 2024 档案

C++ 设计模式
摘要:C++ 设计模式 工厂模式: 我们需要方便的使用这些类,减少耦合度 #include <iostream> #include <string> using namespace std; class car{ public: car(string name):name_(name){} virtual 阅读全文

posted @ 2024-03-24 22:14 AndreaDO 阅读(87) 评论(0) 推荐(0)

windows-vs2022-配置boost开发
摘要:windows-vs2022-配置boost开发 1.先去官网下载boost库最新版本 https://www.boost.org/users/download/ 选择windows版本下载,zip和7z格式的都可以 2.下载解压后点击bootstrap.bat文件,双击运行会生成b2.exe 然后 阅读全文

posted @ 2024-03-24 08:21 AndreaDO 阅读(2011) 评论(0) 推荐(0)

常见算法模板
摘要:常见算法 快速排序 #include <iostream> #include <algorithm> //快速排序 void qsort(int a[],int left,int right) { if(left>=right)return ; int i=left-1,j=right+1; int 阅读全文

posted @ 2024-03-22 22:06 AndreaDO 阅读(21) 评论(0) 推荐(0)

面试题总结2
摘要:面试题总结2 C++ thread_local 详解 thread_local 是 C++11 引入的一个关键字,用于声明线程局部变量。线程局部变量 是指每个线程都拥有独立副本的变量,互不影响。 作用: 提高线程安全性:避免多个线程共享同一变量带来的数据竞争问题。 减少资源开销:每个线程只拥有自己的 阅读全文

posted @ 2024-03-22 16:19 AndreaDO 阅读(66) 评论(0) 推荐(1)

搞懂select和epoll
摘要:搞懂select和epoll 笔记 看了大佬的文章,看懂了网络数据如何传输到计算机内存,服务器的select和epoll模型 网络传输1 select和epoll-1 epoll-2 思考笔记如下,把这三个铭记在心 : 为什么,是什么,怎么做 1-网卡是怎么接收数据的 从硬件角度上看: 网卡接受到网 阅读全文

posted @ 2024-03-18 23:58 AndreaDO

构建自己的muduo库-1
摘要:构建自己的muduo库-1 由于muduo库的网络库原本使用了很多boost库的内容,所以我想手写自己的my muduo库,使用C++11特性去替换掉boost部分内容 构建项目建立CMake文件 项目根目录下CMakeLists内容 cmake_minimum_required(VERSION 2 阅读全文

posted @ 2024-03-17 20:02 AndreaDO 阅读(88) 评论(0) 推荐(0)

C++ 简单使用Json库与muduo网络库
摘要:C++ 简单使用Json库与muduo网络库 C++ 使用Json库 测试代码均在Ubuntu 20上运行 首先下载json.hpp的代码链接 然后和你的测试代码放在同一目录下面 导入方式 #include "json.hpp" using json = nlohmann::json; json序列 阅读全文

posted @ 2024-03-17 08:46 AndreaDO 阅读(189) 评论(0) 推荐(0)

网络编程笔记目录
摘要:网络编程笔记 基础概念 socket编程 https://www.cnblogs.com/AndreaDO/p/18072371 三次握手和四次挥手 高并发服务器(多进程与多线程) https://www.cnblogs.com/AndreaDO/p/18073716 select https:// 阅读全文

posted @ 2024-03-16 16:44 AndreaDO 阅读(28) 评论(0) 推荐(0)

网络编程4 poll和epoll
摘要:网络编程4 了解多路复用IO poll int poll(struct pollfd *fds, nfds_t nfds, int timeout); 函数说明: 跟select类似, 监控多路IO, 但poll不能跨平台. 参数说明: fds: 传入传出参数, 实际上是一个结构体数组 fds.fd 阅读全文

posted @ 2024-03-16 16:42 AndreaDO 阅读(67) 评论(0) 推荐(0)

网络编程3 端口复用-多路IO转接select
摘要:网络编程3 端口复用-多路IO转接 TCP状态转换图 端口复用 防止服务器重启时之前绑定的端口还未释放或者程序突然退出而系统没有释放端口。这种情况下如果设定了端口复用,则新启动的服务器进程可以直接绑定端口。如果没有设定端口复用,绑定会失败,提示ADDR已经在使用中。 解决端口复用的问题: bind 阅读全文

posted @ 2024-03-15 20:46 AndreaDO 阅读(98) 评论(0) 推荐(0)

网络编程2 三次挥手+多线程服务器编程
摘要:网络编程2 三次挥手+多线程服务器编程 三次握手建立连接,四次挥手关闭连接 为什么TCP是面向连接的安全可靠的传输???? TCP是面向连接的安全的数据传输, 在客户端与服务端建立建立的时候要经过三次握手的过程, 在客户端与服务端断开连接的时候要经历四次挥手的过程, 下图是客户端与服务端三次握手建立 阅读全文

posted @ 2024-03-15 09:54 AndreaDO 阅读(35) 评论(0) 推荐(0)

网络编程1 基础概念+Socket编程
摘要:网络编程1 基础概念+Socket编程 协议 概念: 协议事先约定好, 大家共同遵守的一组规则, 如交通信号灯. 从应用程序的角度看, 协议可理解为数据传输和数据解释的规则; 可以简单的理解为各个主机之间进行通信所使用的共同语言. 分层模型 OSI是Open System Interconnecti 阅读全文

posted @ 2024-03-14 18:58 AndreaDO 阅读(81) 评论(0) 推荐(0)

Ubuntu安装Nginx,并且解决问题
摘要:Ubuntu安装Nginx,并且解决问题 安装Nginxnginx-1.12.2 首先下载Nginx的压缩包 Nginx的压缩包 然后在Ubuntu中创建一个目录,开始解压 tar -zxvf nginx-1.12.2.tar.gz 解压结束后在编译和安装Nginx之前,您需要安装一些依赖库。通常, 阅读全文

posted @ 2024-03-10 16:12 AndreaDO 阅读(586) 评论(0) 推荐(0)

C++ 面试题 1
摘要:C++ 面试题 1.详细说说C/C++中malloc、free和new、delete的异同点 在C和C++中,malloc和free以及new和delete是用于动态内存管理的两组函数/操作符。虽然它们的目的相似,但在使用方式和特性上有一些重要的区别。 malloc和free malloc和free 阅读全文

posted @ 2024-03-10 14:52 AndreaDO 阅读(98) 评论(0) 推荐(0)

C++中不同容器下迭代器失效的情况
摘要:C++中不同容器下迭代器失效的情况 迭代器失效分三种情况考虑,也是分三种数据结构考虑,分别为数组型,链表型,树型数据结构。 数组型数据结构:该数据结构的元素是分配在连续的内存中,insert和erase操作,都会使得删除点和插入点之后的元素挪位置,所以,插入点和删除掉之后的迭代器全部失效,也就是说i 阅读全文

posted @ 2024-03-10 10:05 AndreaDO 阅读(175) 评论(0) 推荐(0)

Ubuntu安装Redis
摘要:Ubuntu安装Redis Redis在Ubuntu上是一个开源的内存型数据库,提供了快速、可扩展的键值存储。它使用ANSI C语言编写,支持网络,可以基于内存,也可以持久化。Redis不仅是一个key-value存储系统,还支持丰富的数据类型,如String、list、set、zset、hash等 阅读全文

posted @ 2024-03-08 21:12 AndreaDO 阅读(360) 评论(0) 推荐(0)

linux安装C++ boost和muduo网络库
摘要:linux安装C++ boost和moduo网络库 我的linux是Ubuntu,下面boost和moduo库需要用到的文件放在网盘里面了,链接 安装C++ boost库 在管理员下执行 apt-get install libboost-all-dev 安装完成后使用这条命令 dpkg -l | g 阅读全文

posted @ 2024-03-08 15:57 AndreaDO 阅读(1223) 评论(0) 推荐(1)

ubuntu 开启ssh 并且连接
摘要:ubuntu 开启ssh 并且连接 下载数据包 以 root 或者其他 sudo 用户身份执行下面的步骤,在你的 Ubuntu 系统上安装并且启用 SSH。 01.使用Ctrl+Alt+T打开终端,并且安装openssh-server软件包: sudo apt update sudo apt ins 阅读全文

posted @ 2024-03-08 11:29 AndreaDO 阅读(452) 评论(0) 推荐(0)

C++ mySQL数据库连接池(windows平台)
摘要:C++ MySQL数据库连接池 新手学了C++多线程,看了些资料练手写了C++数据库连接池小项目,自己的源码地址 关键技术点 MySQL数据库编程、单例模式、queue队列容器、C++11多线程编程、线程互斥、线程同步通信和 unique_lock、基于CAS的原子整形、智能指针shared_ptr 阅读全文

posted @ 2024-03-04 20:55 AndreaDO 阅读(940) 评论(1) 推荐(3)

C++ 多线程笔记2 线程同步
摘要:C++ 多线程笔记2 线程同步 并发(Concurrency)和并行(Parallelism) 并发是指在单核CPU上,通过时间片轮转的方式,让多个任务看起来像是同时进行的。实际上,CPU在一个时间段内只会处理一个任务,但是由于切换时间非常快,用户感觉像是多个任务同时在进行。 这种方式的优点是可以充 阅读全文

posted @ 2024-03-02 14:50 AndreaDO 阅读(114) 评论(0) 推荐(0)