自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 网络编程:拆分数据包---libpcap库

安装:sudo apt-get install libpcap-dev。使用libpcap对抓到的数据报进行拆分。打开一个用于捕获数据的网络接口。获取可用的网络设备名指针。​ 1)先编译过滤规则。

2024-07-08 20:18:10 201

原创 网络编程:数据包的封装----libnet库

安装库sudo apt-get install libnet-dev。使用libnet库封装数据包。封装udp数据包的函数。封装mac数据包的函数。封装IP数据报的函数。

2024-07-08 20:03:43 433

原创 网络编程:UDP编程笔记

af : 转换的协议, 如 AF_INET (IPv4) AF_INET6 (IPv6)//转ip 将32位的主机字节序转换为 网络字符节。//转端口 将16位的主机字节序转换为 网络字符节。//转ip 将32位的网络字节序转换为 主机字符节。//转端口 将16位的网络字节序转换为 主机字符节。// 让定义的套接字固定绑定 IP 和 port。// 创建 地址结构体 sockaddr_in。// 创建 地址结构体 sockaddr_in。src :4字节的IP地址的起始地址。// 发送 sendto()

2024-07-01 20:07:29 332

原创 虚拟机配置与windows之间文件夹共享samba服务:

path = /home/share_dir 是想要共享的文件目录。[share_dir] 是将会在Windows下的目录名字。在网络中输入 \Linux 的IP。进入配置文件配置共享文件。在Windows下查看;

2024-06-30 14:09:48 312

原创 虚拟机配置与windows之间复制粘贴

【代码】虚拟机配置与windows之间复制粘贴。

2024-06-30 11:37:45 294

原创 系统编程:线程相关

创建线程:pthread_create(&tid, NULL, task, argv[1]);等待所有线程结束:pthread_join(tid, (void **)&ret);线程退出:pthread_exit(ret);定义线程执行函数:void *task(void *arg){pthread_t tid;编译时增加线程库lpthread。

2024-06-24 11:10:59 211 1

原创 系统编程:互斥锁,条件变量

3,在一对互斥锁中间:pthread_cond_wait(&cond,&lock);//会打开互斥锁,并且阻塞程序,–直到另一个信号函数pthread_cond_broadcast(&cond);2,初始化条件变量 pthread_cond_init(&cond,NULL);2,初始化锁:pthread_mutex_init(&lock,NULL);4,释放条件变量pthread_cond_destroy(&cond);4,销毁锁:pthread_mutex_destroy(&lock);

2024-06-20 21:48:16 487

原创 系统编程:管道

pipe()创建管道,半双工,所以在使用时候close()另外一个;适合在有血缘关系的进程中使用,如 父子进程;fork()函数创建子进程pipe()函数创建管道read()和write()函数完成读写dup2()函数完成文件标识符的重定向execlp()函数开始一个新的进程执行其中的命令。

2024-06-15 23:14:11 364

原创 C++基础:类的继承,public,private,protected

在上图中: 派生==继承。protected模式中。

2024-05-27 20:51:04 260

原创 C++基础:多态

【代码】C++基础:多态。

2024-05-27 20:39:13 253

原创 C++基础:const和引用&

4.引用作为返回值时,确保当函数中执行完毕后,引用关联的内存一定要存在。2.不能有 NULL 引用。必须确保引用是和一块合法的存储单元关联。引用实际上是对同一片内存空间取别名,1.必须在声明引用变量时进行初始化。3.引用前没有数据类型时为取地址。

2024-05-27 00:22:30 330

原创 C++基础:构建者设计模式

【代码】C++基础:构建者设计模式。

2024-05-24 00:11:41 398

原创 c++基础:单例设计模式

【代码】c++基础:单例设计模式。

2024-05-23 20:14:07 369 1

原创 C语言基础:文件及文件操作函数

磁盘文件:指的是相关数据的集合;存储在外部介质上,如磁盘上,使用时才会调入内存中,如 a.txt设备文件:在操作系统中将每一个输入输出设备看作一个文件,把他们的输入输出看作对磁盘文件的读写. 如 stdio,stdout.键盘:标准输入文件,C语言中使用 stdio流 表示.屏幕:标准输出文件,C语言中使用 stdout流 表示.Linux系统中设备文件都在/dev目录下。

2024-05-13 21:38:49 1166 3

原创 C语言基础:链表简单应用-指针,结构体,函数

【代码】C语言基础:链表简单应用-指针,结构体,函数。

2024-05-09 20:23:42 213

原创 C语言基础:结构体内存分配,位段,及共用体和枚举两种构造类型

如果通过宏#pragma pack(1)指定分配单位的大小,在定义结构体上方使用,则根据结构体内部最大的数据结构类型和宏定义值两者最小值来决定内存分配的最小单元.//赋值时,不能超过位段的定义的数据类型的大小,例如,int不超过32位,char不超过8位,超过后自动截断.多个枚举值使用逗号分隔,默认第一个的值为0,枚举值列表里的所有枚举值都是常量.所以成员变量使用同一块内存空间,空间的大小为成员变量中最大的数据类型的大小。枚举也是一种构造类型,将变量的值列举出来,变量的值只限构造体范围.

2024-05-08 20:54:02 406

原创 C语言基础:字符串处理函数-strcpy,strcat,strcmp,strchar,strstr,strtok,atoi,atol,atof

头文件#include<string.h>

2024-05-05 16:30:38 617 1

原创 C语言基础:函数指针,函数指针数组,以及堆空间的动态申请malloc,calloc,realloc

如: int (*p)(int,int), void(*p)(void);函数在内存中也是存储在代码区,在被调用函数时,会通过函数的地址在代码中定位到函数的代码;如果原空间的后面被使用,则会另外找一片空间申请,原指针p被自动释放,返回新指针.申请的内存空间的内容不确定,所以成功后需要memset()函数初始化;如果原空间的后面没有被使用,则在其后面申请,且p指针的地址不变;属于函数指针的应用:指的是将函数指针作为函数的参数使用;成功时返回首地址的地址,失败时返回null;申请的空间比原来大时,

2024-05-05 00:27:30 468 2

原创 C语言基础:指针数组和数组指针以及字符串在内存不同存储位置

p来说,数据类型为一维数组元素,指针加一指向下一个元素,步长为一个数据类型.注意: 如图,p指向的地址=*p指向的地址,只是每次对地址加一时的步长不一样。普通数组的定义 int n[4],n=数组名=数组的地址=数组首元素的地址。*(ps+1) 将地址向下移动,然后 对其取值,即取b的值;)[4],指针加一指向下一个一维数组,步长为一个一维数组。p= 二维数组名=二维数组的地址=二维数组元素的首地址。ps既是数组的地址也是数组中第一个元素的地址。*p=数组名=数组的地址=数组首元素的地址。

2024-04-29 17:18:36 649

原创 C语言基础:预编译阶段(宏定义,选择性编译)以及静态库和动态库的制作和使用

方式一: 静态定义#define 宏名称 值如:#define pei 3.141592678方式二: 动态定义在编译时定义宏gcc 源文件名 -o 生成的可执行文件名 -D 宏名称 值如: gcc test.c -o test -D pei 3.141592678。

2024-04-24 23:14:04 957

原创 C语言基础:内存单元地址大小与内存大小

数组名本质上来说是数组中第一个元素的地址,一个地址占8字节,此时调用函数时传入了数组名,实际上传入第一个元素的地址.所以在64位 的操作系统中存储每一个地址的大小为8字节,但是每一个地址空间的大小仅为1字节,,所以输出的长度为一个地址的大小除以int类型的大小(相当于序列的长度去除以2字节).我的理解: --相当于用八位数的银行卡序列标记卡内一位数的余额大小;地址=指针=操作系统地址总线的大小=64位=8字节。

2024-04-23 21:29:06 414

原创 C语言基础:内存分区,静态变量,以及头文件

第一次执行testfun函数后,程序结束了,但是静态变量n并没有释放,第二次执行testfun函数时,静态变量n已经存在,任然在生命周期内,还保留了之前的值,所以n++后值为2,栈区:由编译器自动分配和释放,栈区的内容只在函数范围内存在,当函数运行结束,内容就会被自动销毁;头文件.h中包含的是各种函数或者变量的声明,函数和变量的定义是在相同名字的.c文件完成的.静态局部变量: 存放在全局区,所以默认值为0;静态全局变量:存放在全局区,所以默认值为0;普通全局变量:,存放在全局区,默认值为0。

2024-04-23 20:55:51 418

原创 C语言基础-- i++与++i 区别及效率原因

i++先取值再自增++先自增再取值。

2024-04-20 10:23:57 293

原创 C语言bug01 --scanf输入时缓冲区问题

scanf函数是标准输入流(从键盘接收数据),接收的数据放入输入缓冲区中,其中就包括在键盘输入的空格、回车这类字符,当你用%d接收时是不会影响的,但是用%c就会产生错误,这是因为在"%c"输入时,空格和转义字符均作为有效字符会被%c接收。getchar的作用是读取一个字符,也是输入函数,所以和scanf读取数据的过程一样,都是从缓存区中获取数据。为了不跳过第二个scanf,我们就可以在接收第二个数之前清空缓冲区,用getchar将缓存区的\n取走.C语言scanf输入时缓冲区问题。

2024-04-18 20:21:51 258 1

原创 c语言基础01

z 压缩格式为gzip格式 (即 j和z为两种不同压缩格式,不可以同时使用)-x 对已经压缩的文件解压 (即 c为压缩,v为解压.c和v不可以同时使用)命令:tar 参数 压缩后的文件名 -C 文件地址或目录。番外:最小值为10000000 //-128。-f指定压缩文件的路径,f必须在其他参数之后。2.重定向符>>表示追加到文件末尾。在Linux中,C程序的编译总过程。-j 压缩文件的格式为bzip2。-C指定解压时文件存放的位置。-c 创建新的压缩文件。-t显示压缩文件的内容。

2024-04-17 21:41:55 444 2

原创 JQuery引入及相关标签和动态效果

JQuery是一个别人写好的js文件;为了简化开发,我们在引入后,直接调用就可以使用;

2024-04-13 12:10:54 876 2

原创 你画我猜纯前端项目,html+css+js,以及js笔记

例如:time_id=setInterval(“showtime()”,100);//100ms后会执行一次showtime()函数;//Math是js提供的一个类,i为0-1之间的值;var 定时器id=setInterval("要执行的函数名“,时间间隔);//取整 ,如i.floor();clearInterval(要结束的定时器id);

2024-04-11 21:37:25 298 1

原创 前端基础:选择器,块分类和块定位

的。

2024-04-09 19:30:40 508

原创 云计算笔记04---单用户模式修改root用户密码,以及命令scp和fuck

如:scp /opt/file1 root@xxx.xxx.xxx.xxx:/opt/dir1。如:scp root@xxx.xxx.xxx.xxx:/opt/file1 /opt/如:scp /opt/ root@xxx.xxx.xxx.xxx:/opt/dir1。开机页面到选择内核的页面,输入e,进入内核启动项的编辑中,在倒数第二段的末尾,添加。scp 使用ssh协议,如果默认端口更改了,需要-P指定ssh对应的端口号。执行ctrl+x,进入单用户模式。

2024-03-29 19:57:26 190

原创 云计算笔记03--配置yum源及下载nginx并上传项目至服务器(常用命令 lrzsz cat head tail)

首先将系统自带的yum源进行备份#阿里云的yum源网站:https://developer.aliyun.com/mirror/下载基础的yum源下载扩展yum源清理yum源缓存重新加载新的yum缓存显示yum源仓库。

2024-03-28 20:56:37 445

原创 云计算02笔记---远程连接服务ssh 以及cp mv rm cd mkdir echo 等Linux常用命令

/复制文件到另一个位置并且改名字为passwd01。//移动文件到另一个位置并且改名字为passwd01。ssh 用户名@ip地址【-p指定端口号】若返回值为0,上一条命令执行成功。若返回值非0,上一条命令执行失败。删去了注释符号#且改变端口号。//目录1复制到目录2。cp 位置1 位置2。从位置1复制到位置2。mv 位置1 位置2。

2024-03-27 19:42:52 505

原创 云计算笔记01关闭两种安全服务防火墙firewalld和seLinux

启动网卡 ens33是本地网卡,在虚拟机里的网卡,工作中会出现eth0 eth1 eth2。输入 :wq 保存并退出(冒号需要shift加冒号才能打出)输入 :wq 保存并退出(冒号需要shift加冒号才能打出)vi /etc/selinux/config 进入配置文件中。selinux是Linux的一个安全子系统,负责管理上下文。系统时间和硬件时间的同步,硬件时间是在BIOS中。再次查看防火墙状态,确保成功。点击esc,退出插入模式。点击esc,退出插入模式。

2024-03-26 20:16:43 208

空空如也

空空如也

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

TA关注的人

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