C++后端开发
文章平均质量分 76
主要涉及:
操作系统、网络编程、计算机网络、Linux
看,未来
墨家学徒
展开
-
scp 命令,真好用
文章目录实例1、从本地复制到远程2、从远程复制到本地说明Linux scp 命令用于 Linux 之间复制文件和目录。实例1、从本地复制到远程命令格式:scp local_file remote_username@remote_ip:remote_folder 或者 scp local_file remote_username@remote_ip:remote_file 或者 scp local_file remote_ip:remote_folder 或者 scp local_fil原创 2022-03-03 20:30:56 · 238 阅读 · 0 评论 -
内核 TCP 参数调优
Linux系统下,TCP连接断开后,会以 TIME_WAIT 状态保留一定时间,然后才释放端口。当并发请求过多时,会产生大量 TIME_WAIT 状态连接,无法及时断开会占用大量的端口资源和服务器资源。这时可优化TCP内核参数,及时将TIME_WAIT状态的端口清理掉。下面方法只对大量 TIME_WAIT 状态的连接导致系统资源消耗有效,如不是这种情况,效果可能不明显。可用 netstat 命令查 TIME_WAIT 状态,输入下面命令,查看当前TCP连接的状态和对应的连接数量:netstat -a.原创 2022-01-23 15:57:24 · 2137 阅读 · 0 评论 -
你的生产环境还在“裸奔”吗?给服务器上个监控吧
文章目录安装 promethues安装 NodeExporter配置 Prometheus 的监控数据源安装配置 Grafana登录添加数据源配置面板报警机制看开局这张图,心动了不?安装 promethues1、从 https://prometheus.io/download/ 找到最新版本的Prometheus Sevrer软件包。2、下载解压,看到如下目录结构(那个data是自己建的,用于存放运行数据)3、启动服务:./prometheus --config.file=promethe.原创 2022-01-18 12:10:28 · 3321 阅读 · 3 评论 -
MySQL基准测试工具:sysbench 新手入门体验
文章目录安装 sysbenchsysbench语法使用示例结果分析使用建议安装 sysbench最初接触这个工具还是在两年前看《高性能MySQL》的时候,那时候没安装上呀,就没弄了、我就想起来现在 luasql 也没安装上,会不会过段时间这也不是事儿了。1、wget https://github.com/akopytov/sysbench/archive/1.0.20.tar.gz2、tar -zxvf 1.0.20.tar.gz3、sudo apt install -y automake.原创 2022-01-17 11:59:09 · 731 阅读 · 1 评论 -
【源码】protobuf 中各个压缩(Serialize)、解压缩(Parse)函数辨析
注释其实很详细。Parsing/*使用从给定输入流解析的协议缓冲区填充消息。读取错误或输入格式错误时返回false。成功返回并不表示整个输入已使用,请确保调用ConsumedEntireMessage()检查是否已使用(如果适用)。*/ PROTOBUF_ATTRIBUTE_REINITIALIZES bool ParseFromCodedStream( io::CodedInputStream* input);//跟上面那个功能一样,不过允许 repeated 部分不填充,.原创 2022-01-10 00:24:22 · 1696 阅读 · 0 评论 -
sqlite3数据库封装 - 动态链接库
东西在这儿提取码:y2rz操作说明:安装这里给两种方法。不弄动态加载库。①同项目工程文件夹形式将资源文件放在当前项目工程文件下,编译指令:g++ *.cpp -o name -L./ -lmydb //名字自己起②第三方库形式这里不建议放在系统库底下,也不建议将头文件放在系统头文件目录下,系统有给我们提供第三方文件夹。将.so文件放到 /usr/local/lib下,将.h文件放到/usr/local/include下,不然肯定会找不到头文件。然后运行指令 ldconfig,刷新系统对原创 2020-05-20 12:12:48 · 3157 阅读 · 0 评论 -
【Linux】血泪教训 -- 动态链接库配置方法
曾经,我以为我会配置动态库。但是,我忘了我是健忘症。于是,今天是我第n次为动态库所折磨。因为每次我都发现,以前的笔记不全。文章目录动态库配置方法①同项目工程文件夹形式②第三方库形式动态库配置方法生成动态库:g++ -fPIC -shared *.cpp -o -libname.so name自己起名字,*.cpp的意思是你专门来个文件夹放它们,别放无关文件,别少紧要文件。刷新动态库列表:# cat /etc/ld.so.confinclude ld.so.conf.d/*.conf#.原创 2020-06-27 17:20:48 · 2023 阅读 · 11 评论 -
从溯源角度看:进程间互斥
文章目录临界区屏蔽中断锁变量自旋锁TSL 指令对多种进程间通信方式的介绍在这篇总结过了:进程间通信,不过没有提互斥,因为我一直是把互斥和通信分开的。这一篇的话将从互斥方面入手,按时间线铺开。这不最近要写自己写网络层了嘛,操作系统的老底子得翻翻。临界区避免竞争条件的问题也可以用一种抽象的方式进行描述,一个进程的一部分时间做内部计算或另外一些不会应发竞争条件的操作。在某些时候进程可能需要访问共享内存或共享文件,或执行另外一些会引发竞争的操作。我们把对共享内存进行访问的程序片称作临界区。而我们要.原创 2021-12-05 20:16:45 · 584 阅读 · 0 评论 -
获取硬件支持的线程数
取走直接用,当个 demo 挺好的。原创 2021-10-18 15:15:37 · 361 阅读 · 0 评论 -
我问你这篇保熟不?! -- 做服务端开发,不懂网络层,真的可以吗?
文章目录唠嗑两句·网络层网络层简介网际协议IP常见的三类IP地址A类B类、C类IP地址与硬件地址地址解析协议ARPIP层转发分组子网划分子网划分的背景意义什么是子网划分?子网掩码子网掩码 & IP地址 = 网络地址不划分子网,也要有子网掩码?可容纳子网数使用子网时分组的转发无分类编址:CIDR(构造超网)CIDR基础知识提出背景CIDR的特点CIDR示例CIDR的好处:常用的CIDR地址块最长前缀匹配二叉线索查找路由表再提一嘴广播地址IPV6地址地址格式IPV6地址简化CIDR斜线表示法我发现我.原创 2021-06-18 10:54:05 · 1773 阅读 · 24 评论 -
零拷贝技术 与 sendfile
愿打开此篇对你有所帮助。原创 2021-10-14 16:55:05 · 464 阅读 · 0 评论 -
设置非阻塞网络I/O
话不多说,放码过来。原创 2021-10-17 21:36:58 · 329 阅读 · 0 评论 -
【c++】测试用例:C/S模型、epoll模型
已经好几次去网上找现成的改一下用了,那我还不如自己备一份儿。文章目录ServerClientepollServer #include <stdio.h> #include <string.h> #include <stdlib.h> #include <unistd.h> #include <arpa/inet.h> #include <sys/socket.h> #inclu原创 2022-01-01 19:14:36 · 258 阅读 · 0 评论 -
tcp/ip协议如何处理环回接口与目标地址为本机地址的数据包?
一图胜千言原创 2021-10-15 17:21:41 · 423 阅读 · 0 评论 -
关于 CPU
愿打开此篇对你有所帮助原创 2021-10-14 16:08:48 · 326 阅读 · 0 评论 -
关于心跳机制设计,我的一点想法
文章目录想法附:长连接断开的原因想法忘了写哈,两年前的旧思想,今天放出来。1、不要迷信TCP的保活机制,应用层不会知道的。2、为什么一定要服务端向客户端发心跳包?两年前老师让我们这么写的时候我就提出了疑问,最后我毅然决然的选择了客户端向服务端发心跳。心跳机制对于服务器的意义是什么呢?在我的认知里,是服务器需要知道这个客户端是否还在线。如果客户端不在线了,就要做相应的资源回收或者标记工作。那客户端呢?客户端心跳发不过去就知道自己挂了嘛,该重连就重连,不重连就关机呗。我当时为什么会产生那样的想法?如原创 2021-10-17 19:33:16 · 405 阅读 · 0 评论 -
不同语言、不同平台可以通信吗?JSON做序列化会粘包吗?附粘包处理
我在做的事,不要问。猜到了,不要说。等我做完,自会成一个系列。Windows 和 Linux可以通信吗?emmm,emmm,我说不能你信吗?难道Windows上应用背后的服务器都是部署在Windows上吗?那怎么通信,通信的时候需要注意什么呢?这第一步,也是磕磕碰碰,毕竟从一年半前写那个分布式管理系统之后就没再这样分两个平台通信了。如果一开始通信的时候就报错:由于连接方在一段时间后没有正确应答或连接的主机没有反应。有这么几个情况,绕到最后就是一个情况,ping不通。所以ping一下试试看。..原创 2021-10-15 16:22:01 · 773 阅读 · 1 评论 -
【小技巧】argc和argv的用法
在Linux底下编程的时候,经常会看到如下的一行代码:int main(int argc,char*argv[]){}有时候,这个argv还会在main函数实现中被用到,那么就会有小伙伴不知道是干嘛用的,或者说知道是干嘛用的,不知道怎么用。我也困惑过,所以写下来。main(int argc,char *argv[ ])argv为指针的指针argc为整数char **argv or: char *argv[] or: char argv[][]假设程序的名称为CX,当只输入CX,则由操原创 2020-08-01 21:53:12 · 4664 阅读 · 1 评论 -
学点东西:子网汇聚、子网划分
文章目录概念性的东西概念性的东西原创 2021-06-30 15:30:25 · 1803 阅读 · 15 评论 -
学会使用这些常见的网络诊断工具,助力你的网络编程之路
工欲善其事,必先利其器。学会使用这些常见的网络诊断工具,助力你的网络编程之路!原创 2021-07-04 15:55:49 · 2302 阅读 · 26 评论 -
通过time()函数获取时间戳
取走直接用,当个 demo 挺好的。原创 2021-10-19 10:38:29 · 1006 阅读 · 0 评论 -
通过域名获取主机IP -- struct addrinfo
参考书籍:《UNIX环境高级编程》 (APUE,男神的书,出第三版了,有需要的私信我)文章目录结构体定义参数释义:ai_flagsai_familyai_socktypeai_protocolai_next相关函数getaddrinfo参数释义:返回值栗子freeaddrinfo使用示例亲测:结构体定义addrinfo结构主要在网络编程解析hostname时使用,其在头文件#include<netdb.h>中,定义如下:struct addrinfo{ int ai_flags;原创 2020-09-10 21:12:20 · 2602 阅读 · 11 评论 -
Linux 磁盘与文件系统管理
文章目录磁盘分区linux各个目录的作用磁盘与目录的容量软/硬 连接磁盘的分区、格式化、检验与挂载lsblk (list block device)列出系统上的所有磁盘列表blkid 列出设备的 UUID 等参数磁盘分区:gdisk/fdisk几个注意点磁盘分区linux磁盘分区主要分为基本分区(primary partion)和扩充分区(extension partion)两种,基本分区和扩充分区的数目之和不能大于四个(由于分区表只有64bytes而已,最多只能容纳四个分区)。且基本分区可以马上被使.原创 2021-11-21 11:12:22 · 1023 阅读 · 3 评论 -
段错误?打的就是段错误!!
文章目录①一段有段错误的代码②跟我一起 -> 直达病灶③看我对症下药呵,段错误?自从我看了这篇文章,我还会怕你个小小段错误?请打开你的Linux终端,跟紧咯,准备发车!!嘟嘟嘟哒~~①一段有段错误的代码#include<stdio.h>void errfunc(){ int *p = NULL; *p = 1;}int main(){ errfunc(); return 0;}这段代码拿去运行,肯定段错误。②跟我一起 -> 直.原创 2020-05-22 11:56:03 · 12426 阅读 · 91 评论 -
【vim】你的背包里,缺不缺一份vim简明教程嘞?
vim简明教程,应有尽有。原创 2021-02-16 15:11:38 · 7190 阅读 · 24 评论 -
重新认识一下 epoll 的 ET 模式和 LT 模式吧?+ 源码验证 + 新疑惑
愿打开此篇对你能有所帮助。原创 2021-10-10 21:21:39 · 526 阅读 · 0 评论 -
阻塞 & 非阻塞 | 同步 & 异步
愿打开此篇对你有所帮助。原创 2021-08-30 11:36:48 · 997 阅读 · 1 评论 -
用过的gdb命令
愿打开此篇对你有所帮助。原创 2021-08-20 15:41:20 · 423 阅读 · 0 评论 -
操作系统抖动现象、网络抖动与延迟、函数抖动之防抖与节流
愿打开此篇对你有所帮助。原创 2020-09-04 19:34:37 · 5703 阅读 · 10 评论 -
什么是服务熔断?
愿打开此篇对你有所帮助。原创 2021-02-28 18:08:29 · 3395 阅读 · 7 评论 -
深入了解epoll模型 -- 开卷有益
希望打开此篇对你有所帮助。原创 2020-06-10 23:00:02 · 12622 阅读 · 146 评论 -
服务端向客户端传输文件
愿打开本篇对你有帮助。原创 2020-01-21 13:10:43 · 3542 阅读 · 1 评论 -
SOCKET网络编程
愿打开这篇对你有所帮助。原创 2021-02-06 16:41:56 · 1414 阅读 · 9 评论 -
wireshark简明教程,新手专用,挑实在的讲,不搞花里胡哨
愿打开这篇对你有所帮助。原创 2021-07-19 13:30:30 · 3152 阅读 · 26 评论 -
计网基础 ·运输层
愿打开本篇能对你有帮助。原创 2021-06-23 16:54:04 · 1517 阅读 · 7 评论 -
慢启动 && 拥塞避免 | 快速重传 && 快速恢复
愿打开这篇对你有帮助。原创 2021-09-27 09:51:57 · 847 阅读 · 0 评论 -
三次握手 && 四次挥手
愿打开这篇文章能帮到你。原创 2021-10-06 20:50:44 · 643 阅读 · 1 评论 -
线程池实现与讲解
希望打开这篇对你有所帮助。原创 2020-06-21 11:34:09 · 8539 阅读 · 158 评论 -
while 如何解决虚假唤醒 及 if 为什么就不行?
希望打开这篇能对你有所帮助。原创 2021-09-20 22:14:40 · 633 阅读 · 0 评论 -
线程同步与互斥
愿打开这篇对你能有所帮助。原创 2021-09-04 19:32:26 · 474 阅读 · 1 评论