自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(81)
  • 收藏
  • 关注

原创 centos7下的网口配置

或其他类似的文件名)中的配置内容。该文件用于配置网络接口的参数。这是一个典型的Linux网络配置文件(通常是。

2024-03-14 17:01:03 211

原创 Http协议

在请求头和请求正文之间应该有一个空行,但在您提供的示例中,由于请求是一个GET请求,并且没有请求体(body),所以空行没有显示。这是请求的第一行,包含了HTTP方法(GET)、请求的资源URI(/metrics)以及查询参数(board_ip、type、board_no),还有HTTP协议的版本(HTTP/1.1)。请求头包含了关于请求的附加信息,如请求的目标服务器(Host)、连接类型(Connection)、缓存控制(Cache-Control)、浏览器标识(User-Agent)等。

2024-02-01 11:36:22 145

原创 git相关

【代码】git相关。

2024-01-16 18:16:54 524

原创 解决“undefined reference to main‘“和“collect2: error: ld returned 1 exit status“的错误

确保libpcap库已经正确安装。可以尝试使用-l选项指定库的路径,例如-L/path/to/lib。如果库文件不在默认的搜索路径下,需要通过-L选项指定库文件的路径。确保main.c文件中包含了main函数。main函数是程序的入口,没有定义main函数会导致编译错误。通常这是因为没有定义main`函数或者链接的库文件不正确。

2023-09-28 10:24:47 2445

原创 通信相关常识

例如,一个常见的 MSISDN 可能是 “+1 555-123-4567”,其中 “+1” 是美国的国家码,“555-123-4567” 是用户的本地号码。在移动通信网络中,为了减少无线信道上的控制消息负载和保护用户的隐私,移动设备会被分配一个临时的TMSI来代替其IMSI进行通信。总结起来,点对点通信是一对一的直接通信,而非点对点通信是多对多或多对一的间接通信。需要注意的是,MSISDN 只是标识移动设备的电话号码,与 SIM 卡或移动设备本身的唯一标识(如 IMEI)是不同的。

2023-09-20 18:42:54 336

原创 解决error: incompatible type for argument 1 of ‘************’报错

几乎都是该函数的参数类型不匹配导致的;所以检查并纠正函数参数类型即可。

2023-08-11 10:17:42 7256

原创 Warning: Unable to send packet: Error with PF_PACKET send() [139868]: Message too long (errno = 90)

wireshake打开数据包,可以看到数据包长度,其中有超过1w的,已经超过了MTU值(MTU默认为1500),所以问题的解决方法是修改系统的MTU值。MTU(最大传输单元)是一种网络通信中的参数,它指定了在一个网络包中能够传输的最大数据量。该问题是发的包太大了超过了我们发送的最大值;

2023-08-08 11:42:33 657

原创 程序员应该掌握的英语词汇和常见名词的扫盲

GPRS是在GSM(Global System for Mobile Communications)网络基础上进行的升级,它可以实现更快的数据传输速度,从而支持更多的应用,如电子邮件、网页浏览和即时通讯等。2.5G是介于2G和3G之间的过渡阶段,它在2G网络的基础上增加了数据传输功能。虽然GPRS是2.5G网络,但它并不代表整个2G网络。GPRS提供了比传统的2G网络更高的数据传输速度,可以实现常时连接和实时数据传输。它采用分组交换的方式传输数据,将数据分割成小的数据包进行传输,提高了网络的利用率。

2023-08-03 13:03:38 95

原创 C语言知识扫盲

语法结构:

2023-07-14 17:56:42 177

原创 解决/usr/bin/ld: cannot find -l****解决

新建一个libuuid.so的软连接,使其链接到已有的libuuid.so文件(如libuuid.so.1)。查询结果如下图,发现本机存在libuuid.so但是运行时却不存在libuuid.so说明是连链接错误。以libluuid.so为例,在系统中查找该文件。其命名规则是:lib+库名(即xxx)+.so。其实都是出现了类似的问题,只是各自的文件不同。完成后查看下所有libuuid.so文件。1,包已经下载,链接不正确。

2023-07-13 17:06:23 9809 2

原创 解决fatal error: openssl/hmac.h: No such file or directory

要解决这个问题,你需要安装 OpenSSL 开发包,执行以下命令进行安装,然后重新编译即可解决。Ubuntun系统执行以下命令。CentOS系统执行以下命令。

2023-07-13 15:41:13 652

原创 Liunx命令大全及基础知识扫盲

总线号用于标识设备所连接的PCI总线的编号,设备号用于标识同一总线上的不同设备,功能号用于标识同一设备上的不同功能,寄存器号用于标识设备上的寄存器。总之,PCI地址是一种用于标识PCI总线上设备的物理地址,由总线号、设备号、功能号和寄存器号组成。PCI地址用于唯一标识连接到PCI总线的设备,并确定设备的位置和访问设备的寄存器。总的来说,ens0 和 eth0 的区别在于命名约定的不同,它们都是用来标识不同的以太网接口。在网络配置和管理中,它们的功能和用法一般是相似的,只是命名上的差异。

2023-07-13 10:16:56 289

原创 VScode下如何让统计代码量

是要统计的文件夹路径。执行命令后,终端会输出统计结果,包括代码行数、空行数、注释行数等。需要注意的是,需要先安装。等待插件统计完成,会在 VS Code 底部状态栏显示统计结果,包括代码行数、空行数、注释行数等。在 VS Code 中,可以使用插件来统计文件夹里的代码行数。安装完成后,打开要统计代码行数的文件夹,右键点击文件夹,选择。另外,如果你想要在终端中使用命令行来统计代码行数,可以使用。打开 VS Code,点击左侧的插件图标(或者按下。快捷键),搜索并安装。

2023-06-02 22:17:31 13416

原创 对于负载均衡服务器一致性哈希算法一些简单的想法

负载均衡这个概念可以抽象为:从n个候选服务器中选择一个进行通信。负载均衡算法有:随机,轮询,最小连接数等。今天的“猪脚”是一致性哈希负载均衡算法;“相同的请求尽可能的落到同一台服务器上”注意这短短的描述却包含了大量的信息;“相同的请求”,什么是相同的请求?1,请求方ip2,请求服务名称,参数列表的串3,用户ID“尽可能”-------为什么不是一定?因为服务器可能发生上下线,所以少数服务器的请求不应该影响大多数服务器这也呼吁了算法中的一致性流量尽可能均匀分布。

2023-01-03 21:28:09 464 1

转载 C++的关键字volatile,mutable关键字,explicit关键字

遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问。但是, 上面的代码中的_size代表的是字符串内存分配的大小, 那么调用的第二句 “CxString string2 = 10;volatile 指出 i 是随时可能发生变化的,每次使用它的时候必须从 i的地址中读取,因而编译器生成的汇编代码会重新从i的地址读取数据放在 b 中。首先, C++中的explicit关键字只能用于修饰只有一个参数的类构造函数, 它的作用是表明该构造函数是显示的, 而非隐式的。

2022-09-12 10:06:37 184

原创 c++的四种转换方式,完美转发底层如何实现,移动构造语句底层如何实现,auto推演,NULL和nullptr,C++的统一的初始化方案

代码】c11的新特性,c++的四种转换方式,完美转发底层如何实现,移动构造语句底层如何实现,auto推演。

2022-07-20 11:11:44 367

原创 力扣刷题常用的c++库函数

2,min函数2,sort函数(1)第一个参数first:是要排序的数组的起始地址。(2)第二个参数last:是结束的地址(最后一个数据的后一个数据的地址)(3)第三个参数comp是排序的方法:可以是从升序也可是降序。如果第三个参数不写,则默认的排序方法是从小到大排序。sort()函数和lambda表达式1.reverse函数可以反转一个字符串2.反转字符数组3.反转整型数组4,swap函数5,memset()函数C 库函数 **void memset(void str,

2022-06-12 11:53:58 2115 1

原创 动态规划,按摩师,爬楼梯,最大子数组和,最长递增子序列

文章目录int max(int a, int b){ if (a >= b) { return a; } return b;}int rob(vector<int>ar,int n){ vector<int>br(ar.size()); int ma = ar[0]; br[0] = ar[0]; br[1] = max(ar[0], ar[1]); if (ma < br[2]) ma = br[2]; for (int i = 2;

2022-06-12 11:14:53 132

原创 动态规划,最长公共子序列,机器人路径,打家劫舍

文章目录定义最长公共子序列定义动态规划算法是通过拆分问题,定义问题状态和状态之间的关系,使得问题能够以递推(或者说分治)的方式去解决。动态规划算法的基本思想与分治法类似,也是将待求解的问题分解为若干个子问题(阶段),按顺序求解子阶段,前一子问题的解,为后一子问题的求解提供了有用的信息。在求解任一子问题时,列出各种可能的局部解,通过决策保留那些有可能达到最优的局部解,丢弃其他局部解。依次解决各子问题,最后一个子问题就是初始问题的解。最长公共子序列#define _CRT_SECURE_NO_W

2022-05-17 21:16:13 209

原创 map,unordered_map,multimap,lambda表达式

文章目录统计字符串中字符出现的次数map底层的实现是一个红黑二叉树统计字符串中字符出现的次数在map中[]运算符的重载的工能是访问或插入指定的元素”emplate<class _Key,class _Val>class map{ typedef pair<_Key, _Val> value_type;};//T树//哈希表//mapint main(){//统计字符串中字符出现的次数 string stra[] = { "map","duque","qu

2022-05-12 21:19:14 272

原创 数据库mysql

文章目录1,数据库的构成服务器端其实就是一个数据库管理系统数据库存在于一个文件中,数据库文件存在于磁盘上,数据库管理系统数据库系统(DBS) 包含数句库(DB)和数据库管理系统()数据库是一个CS模式服务器,客户端(就是TCP连接).........

2022-05-07 15:40:36 154

原创 返回最大可整合子数组的长度

文章目录1,返回最大可整合子数组的长度1,返回最大可整合子数组的长度先给出可整合数组的定义:如果一个数组在排序之后,每相邻两个数的差的绝对值都为1,或者该数组长度为1,则该数组为可整合数组。例如,[5, 3, 4, 6, 2]排序后为[2, 3, 4, 5, 6],符合每相邻两个数差的绝对值都为1,所以这个数组为可整合数组给定一个数组arr, 请返回其中最大可整合子数组的长度。例如,[5, 5, 3, 2, 6, 4, 3]的最大可整合子数组为[5, 3, 2, 6, 4],所以请返回5数据范围:0

2022-04-22 16:22:40 85

原创 会话,进程组,守护进程的特点,守护进程的步骤

文章目录守护进程步骤守护进程特点:运行周期长(开机直至你关机或者系统关闭),在后台运行,不用和用户交互(脱离终端)会话:每打开一个终端就建立了一个会话会话首进程:该会话运行的第一个进程(bash)(用该bash的PID来标识该会话(id))进程组:每运行一个命令,就是一个进程组(进程组的id是该命令的PID或父进程的PID(父子进程))组长进程:父子进程中父进程为组长进程getsid(0):会话idgetpgrp():进程组idsetsid():创建一个新会话(从别的会话中拿出的子进程).此

2022-04-09 17:07:53 1338

原创 poll,epoll,select,poll与epoll的区别,LT模式与ET模式的区别

poll以下图片来自Liunx高性能服务器编程poll与select的区别poll是个加强版的selectpoll能检测的文件描述符的数目更大(但是每个计算机都有自己的最大数量) poll注册的事件类型更多poll既可以在liunx上可以,也可以在windows和unix上用select是数组将文件描述符交给set_fd,在交给select,而poll直接将文件描述符交给poll#define _GNU_SOURCE#include<stdio.h>#incl

2022-04-07 09:46:09 1393

原创 IO复用,select,

一,IO复用的方法IO复用的方法:select poll epollIO复用的功能这里的描述符就是套接字以前TCP服务器端和客户端一个服务器端要连接10个客户端就需要创建10个线程学校发书,所有人在图书馆排队领书没到你你就在等相当于阻塞,另一种到你了我给你打电话你再来领就不会出现阻塞(例子)在程序中来讲就是我们将所有要关注的描述符全部注册到select上,select帮我们检测哪个描述符上有数据产生(有可能是一个或2,3个上同时有数据)举个例子来使用select检测键盘(键盘也是描述符)

2022-04-05 14:15:48 583

原创 C++vector里面的各种函数,C++vector创建二维数组,迭代器的失效问题

文章目录vector的初始化通过迭代器对vector里面的数据进行访问reserveresize列表方式初始化assign可以简单的将vector想象成一个可扩容的线性表vector的初始化int main(){ int ar[] = { 12,23,34 }; vector<int>ar1; vector<int>ar2 = {12,23,34,45,56}; vector<int>ar3(10, 23); vector<int>ar4(

2022-03-30 09:04:16 854

原创 菱形继承,虚继承,STL

文章目录C++的4个子集C++的4个子集C子集class子集STLtemplate模板//函数重载参数的类型或者个数不同,在C11里面也可以根据你的作之和右值来判断void fun(int& a)//左值引用{ cout << "fun(int & a)" << endl;}void fun(const int& a)//万能引用不管你是左值还是右值{ cout << "fun(const int &a)" &lt

2022-03-29 15:54:28 3035

原创 工厂模式与shared_ptr

文章目录工厂模式图

2022-03-28 17:28:48 183

原创 分治策略,递归,快排

文章目录将循环函数改为递归计算阶乘2,打印一位数组查询一个数组里面的值的下标,若果没有改值则输出-1问题不变,规模变小将循环函数改为递归计算阶乘int fun(int n){ int sum = 1; for (int i = 1; i <= n; ++i) {//for(int i=1; ;++i)程序不会崩溃 sum = sum * i; } return sum;}//O(n) S(1)int fac(int n){ if (n <= 1) return

2022-03-17 11:29:06 102

原创 右值引用,移动拷贝构造,移动复制函数,柔性数组,友缘

文章目录一,右值引用二,移动拷贝构造函数,移动赋值函数一,右值引用将亡值:表达式的运行中产生的一个不具有名字的实体;右值引用:对将亡值和纯右值进行引用 int a = 10; int& b = a; int&& c = 10; int&& d = c;//err此时c有了名字不再是右值String &&fun(){ String s2("yhping"); return s2;//s2有名字}二,移动拷贝构

2022-03-03 20:31:10 187

原创 构造函数的三个作用,()运算符的重载,*和->运算符的重载

文章目录后置++有两个参数运算符的重载什么时候以引用返回什么时候以值的形式返回一,构造函数的三个作用:后置++有两个参数运算符的重载什么时候以引用返回什么时候以值的形式返回返回的是*this就以引用返回这样可以少创建对象提高效率;返回的是重载里面新创建的对象就以值的形式返回;一,构造函数的三个作用:创建对象,对象初始化,类型转换(要实现类型转换构造函数只能是单参的)class Int{private: int Value;public: Int(int x = 0) :Value(

2022-03-01 11:38:30 340

原创 数组和引用,左值和右值,运算符的重载

文章目录数组和引用数组和引用int main(){ int ar[10] = {12,23,34,45,56,67,78,89,90,100}; int& a = ar[0]; a += 10; int (&br)[10] = ar;//int(*p)br=&ar;指向数组地址的指针和引用}

2022-02-28 23:13:55 314

原创 拷贝构造函数,运算符的重载,6个缺省的函数,连=

文章目录一,拷贝构造函数一,拷贝构造函数常引用可以引用字面常量普通引用不可以

2022-02-27 15:06:22 239

原创 引用,this指针,引用和指针的区别

文章目录一,引用引用和const二,引用和指针有什么样的区别?双向函数一,引用#ifdef __cplusplus//c++ cout<<"a= "<<a<<endl;//c++的方式#elseprintf("a=%d\n",a);//c语言的方式const int a=10;int b=0;int *p=(int*)&a;//OKint*s=const_cast<int*>(&a);//去常性强转(写的比较丑陋容易引起注

2022-02-26 23:08:07 136

原创 const和引用,this指针,构造函数和析构函数

文章目录一,const和引用二,this指针在成员方法之后加const,说名只能读取函数内对象属性的数值而不能修改相关属性的数值常对象只能调用常方法this指针值的传递(调用约定)可以通过改写调用约定来实现以入栈的方式三构造函数和析构函数构造函数生可带来而死不带去析构函数一,const和引用更为复杂的是二,this指针上述图片的代码为所有的属性共享那么怎么区分那个属性的哪个方法呢加粗样式有了this指针我们就节省了空间当对象调动成员函数时才有this指针,当我们编译函数时给

2022-02-26 19:22:50 145

原创 tcp的状态

文章目录标题标题

2022-02-24 16:49:42 2219

原创 改进后的tcp协议代码,多线程tcp协议代码,三次握手,四次挥手,tcp沾包,Tcp的特点

虚拟机要处于桥接模式下在liunx上我们用ifconfig来查看IP号在Windows上用ipconfig上查看;一次只能处理一个客户端套接字文件描述符也是文件描述符是0,1,2…不可能小于0;清空saddr;5是监听套接字的大小;accept里的参数给出记录客户端IP和端口的那块空间;把一个结构体转换成一个字符串;网络转主机;...

2022-02-22 11:13:43 483 2

原创 消息队列,线程,线程同步,互斥锁,线程打印ABC,生产者消费者

一,消息队列在这里插入图片描述在这里插入代码片-q-m共享内存-s信号量二,线程我们为什么需要多线程函数指针要使用线程库对多线程加以控制同步并发执行谁跑得快谁先执行...

2022-02-19 21:54:56 329

原创 面向对象1:this指针,构造函数,析构函数,拷贝构造函数,运算符的重载,权限,初始化列表

文章目录1,抽象,封装2,this指针3,构造函数调动自己写的构造函数4,析构函数5,拷贝构造函数1,抽象,封装抽象:从目标中提炼出我们所关心的核心要素。比如说生活中的圆有很多,我们所关心的是其半径、面积、颜色等。封装:封装有两方面内容,一是将数据和函数绑定在一起,二是限制访问目标对象的内容,如private成员只能被类中的函数访问而不能在类外被访问。封装就是把你抽象起来的东西集中起来;2,this指针this指针是在编译期,自动加上的加在1,普通成员方法形参列表的第一个加上Type *c

2022-01-02 16:28:42 368

原创 c和c++的区别2,指针和数组的区别,命名空间,new和malloc,const,引用

文章目录1,指针地址数组名的区别2,命名空间3,输入输出4,malloc和new4.1malloc并free申请一个变量的空间,一维数组,5*10二维数组4.new 并delete申请一个变量的空间,一维数组,5*10二维数组5,const5.1,const在c语言里5.2const在c++里面1,指针地址数组名的区别指针和地址的区别数组名int arr[]={0}这里的arr是常量指针int *arr这里的arr是变量指针存放地址指针可以解引用指针是个变量,地址是个常量指针有类型;指针和

2021-12-30 15:10:29 515

空空如也

空空如也

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

TA关注的人

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