自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 10.7homework

2024-10-07 21:35:43 139

原创 10.6homework

2024-10-07 10:47:23 432

原创 10.5homework

2024-10-05 21:53:37 163

原创 10.4homework

2024-10-04 22:25:37 151

原创 10.3homework

2024-10-03 20:53:49 103

原创 10.2homework

2024-10-02 22:25:39 99

原创 Linux,C高级——day4

bin/bash# 定义稀疏数组# 定义求和函数arr[@]}";dodoneecho $sum# 调用函数并输出结果。

2024-09-23 21:00:39 311 1

原创 Linux,C高级——day3

a.在家目录下创建目录文件,dirb.dir下创建dir1和dir2c.把当前目录下的所有文件拷贝到dir1中,d.把当前目录下的所有脚本文件拷贝到dir2中e.把dir2打包并压缩为dir2.tar.xzf.再把dir2.tar.xz移动到dir1中g.解压dir1中的压缩包。

2024-09-23 20:16:29 384

原创 Linux,C高级——day2

2024-09-19 19:54:26 170

原创 Linux,C高级——day1

ls -l:显示文件的详细信息ls -a:显示隐藏文件ls -lh:文件大小单位显示ls -i:显示文件的inode号。

2024-09-19 14:45:57 1171

原创 day52——QT时钟

【代码】day52——

2024-09-11 22:35:01 481

原创 day51——登录,跳转

当用户点击取消按钮,弹出问题对话框,询问是否要确定退出登录,并提供两个按钮,yes|No,如果用户点击的Yes,则关闭对话框,如果用户点击的No,则继续登录当用户点击的登录按钮,进行账号和密码的匹配,如果匹配成功,则弹出信息对话框,给出信息为,登录成功,并给出一个确定按钮,当用户点击该按钮后,关闭登录界面,弹出另一个界面当账号和密码不匹配是,给出错误对话框,给出信息为账号和密码不匹配,是否重新登录,并提供两个按钮 Yes|No,如果用户点击了Yes,则清空密码框后,继续登录。

2024-09-11 10:28:49 220

原创 day52——QT闹钟

【代码】day52——QT闹钟。

2024-09-10 21:53:42 384

原创 day50——QT

【代码】day50——QT。

2024-09-06 22:43:26 408

原创 day49——QT

1. Assistant ---> QT类库的帮助手册的工具​2. Designer ---> 用来设计图形化界面对应的界面文件为***.ui (ui文件中的内容是一种标记性的语言)​3. uic.exe ---> 将***.ui文件转换为标准的C++的代码 ui_***.h在cmd终端下输入以下命令:​4. moc.exe ---> 元对象编辑器工具将QT中非标准的信号和槽,转换为标准的C++的代码​。

2024-09-05 21:40:17 939

原创 day49——杂项

独占智能指针会“拥有”它所指向的对象,某一时刻,只能有一个unique_ptr指向给定的对象,当该指针被销毁时,指向的对象也会随之释放。shared_ptr共享他指向的对象,多个共享指针可以指向(关联)相同的对象,在内部采用计数器机制来实现当新的shared_ptr与对象关联时,引用计数器增加1当shared_ptr超出作用域时,引用计数器减1当引用计数器变为0时,则表示没有任何shared_ptr与对象关联,则释放该对象​class Testpublic://名字。

2024-09-05 19:33:15 1201

原创 day48——杂项

接下来, 他只要简单的调用 push() 和 pop() 函数来操作栈. 借助 C++ 模板的威力, 他可以指定任何的数据类型,不仅仅是int类型. STL stack实现了栈的功能,而不管容纳的是什么数据类型.1> 所谓模板函数,就是在定义函数时,函数的参数的类型和参数值都不给定,等到函数调用时,根据传进来的实参的类型和值来确定该函数的具体实现。值捕获:值捕获时,表达式中的数据和外界的数据属于不同的数据,并且在非mutable的lambda表达式中值捕获数据可读不可写。[&变量1,&变量2,。

2024-09-04 21:02:02 828

原创 day47——面向对象特征之继承

1、作用域发生在父子俩中2、函数名相同3、返回值可以不同4、参数相同5、没有virtual修饰。

2024-09-03 19:07:56 1477

原创 day46——运算符重载

将myString类中能够实现的操作都实现一遍。

2024-09-03 09:12:39 289

原创 day45——面向对象特征

1> 不到万不得已的情况下,不要使用友元,因为友元的出现使得封装称为虚谈,友元破坏了类的封装性2> 友元不具有传递性:A是B的朋友,B不一定是A的朋友3> 友元不具有传递性:A是B的朋友,B是C的朋友,A不一定是C的朋友4> 友元不具有继承性:父类的朋友,不一定是子类的朋友5> 必须使用友元的情况:插入和提取运算符重载时,只能使用友元函数来解决。

2024-08-30 20:36:37 1144

原创 day44——面向对象特征

class 类名public:功能的成员属性、函数protected:受保护的成员属性、函数private:私有的成员属性、函数1> 类中的成员属性和成员函数分为不同的权限public:该权限下的成员,可以在类内、子类中、类外被访问protected:该权限下的成员,可以在类内、子类中直接被访问,类外不允许被访问private:该权限下的成员,只能在类内被访问,子类、类外不允许被访问2> 如果没有指定权限,则默认为私有权限。

2024-08-29 19:44:58 1009

原创 day44——C++对C的扩充

函数重载就是能够实现"一名多用",是实现泛型编程的一种泛型编程:试图以不变的代码,来实现可变的功能。

2024-08-29 19:15:48 879

原创 day43——C++对C的扩充

类型名 &引用名 = 目标名;例如:int num = 520;//定义一个引用,并指向一个num目标对&又进一步使用,&的使用方式1、&表示单目运算符,取地址运算,后面紧跟一个变量2、&&表示双目运算符逻辑与运算3、&表示双目运算符,按位与运算4、&表示定义引1> 在C语言中,对于堆区空间的申请和释放,使用的是malloc和free函数,C++中也可以继续使用2> 在C++中,提供了更加操作方便的关键字 new和delete用于堆区空间的申请和释放。

2024-08-28 19:27:24 851

原创 day42——C++对C的扩充

将实现同一事物的所有的属性(成员变量)和行为(成员方法)都集中到一起,我们称之为 类(class),并向外部提供相关接口,用户可以使用这些接口来实现对该类实例化出来的对象的操作,进而对整个进程进行服务。1> 提示并输入一个字符,判断该字符是大写还是小写,如果是小写,转变成大写后输出,如果是大写,转变成小写输出,如果是其他字符,则转变成 * 输出。2> 命名空间中的名字和全局变量同名时:全局变量会自动放入全局命名空间中,要使用该命名空间中的名字,只需在名字前加作用域限定符即可。后期程序直接使用相关接口。

2024-08-27 21:11:28 944

原创 day40——数据库 sqlite3

一种存放数据的文件,但是该文件拥有特殊的结构第一层结构:数据库本身第二层结构体:数据库中存放了若干张表单每一张表单的字段构成各不相同第三层结构:一张表单中,所有字段都能存放信息一组字段中的所有数据,就是一条记录最终,很多很多条件,格式不同的记录,组成了一个完整的数据库。

2024-08-22 19:57:23 955

原创 day40——IO模型补充

epoll模型只有linux系统才有epoll模型只有从linxu内核2.4版本之后才有epoll从2.4内核到目前的4.X内核,没有更新的模型了,说明epoll模型本身已经很完美了select的问题:监视列表无法扩容监视列表和返回的激活列表混在了一起效率低下:select需要自己管理激活的套接字select查询哪个套接字激活了是一个双重循环,效率低下select的内核部分,监视的套接字也是一个数组,查询哪个套接字激活了,效率也是低的poll的问题:效率低下:select的内核部分,监视的套接字也是一个数组

2024-08-22 18:53:34 348

原创 day39——IO模型

让我们的read函数不再阻塞,无论是否读取到消息,立刻返回。

2024-08-21 22:14:38 435

原创 day38——动态库与静态库

库在linux系统中是一个二进制文件,它是由XXX.c(不包含main函数)文件编译而来的,分为静态库和动态库。库在系统中的内容是不可见的,是一个二进制乱码当程序需要使用库中的相关函数时,直接链接对应的库即可,无需跟对应的 源文件一起联合编译作用:能够保证源代码的安全性库在不同的系统中的表现方式也是不同的二、静态库2.1 概念所谓静态库,就是将一个XXX.c的源文件,编译生成一个libXXX.a的二进制文件。当程序需要使用源文件中的函数时,只需要链接上该源文件生成的静态库文件即可直接调用相关函

2024-08-20 19:05:42 459

原创 day38——HTTP服务器

1> Hyper Text Transfer Protocol(超文本传输协议),用于万维网(WWW:world wide web)进行超文本(html文档)信息的传送协议。http的响应代号:1XX (信息状态错误) 2XX(成功) 、3XX(重定向状态码)、4XX(客户端错误)、5XX(服务器出错)1> 任何一个http请求都由三部分组成:请求首部、请求主体、请求数据。1> 响应首部也是由三部分组成,分别是响应头、响应主体、响应数据。2> 对于客户端请求协议包而言,一般没有请求数据,具体格式如下。

2024-08-20 18:47:53 411

原创 day37——抓包分析

0X0003 接收发往本机的MAC所有类型:ip,arp,rarp数据帧,接收从本机发出去的数据帧,Ack:应答号,用于应答非应答包(握手包,挥手包,数据包)。服务器和客户端的代码不能都运行在ubuntu,因为wireshark抓的是流经真实网卡的数据包。Seq:序列号,占4个字节,用于给数据段进行编号的。0X0800 只接收发往本机的mac的ip类型的数据帧。混杂模式打开的情况下,会接收到非发往本地的MAC数据帧。0X0806 只接收发往本机的ARP类型的数据帧。SYN:握手包,连接的时候产生的包。

2024-08-19 21:10:46 523

原创 基于UDP的网络聊天室

三. 基于UDP的网络聊天室。

2024-08-19 08:56:38 237

原创 day36——TCP并发服务器

1> 对于UDP通信而言,由于是面向无连接的通信,一个服务器可以服务多个客户端,处理多个客户端的消息2> 对于TCP服务器而言,需要建立连接,服务器域客户端建立连接后,其他客户端就无法通信了3> 如何做到一个TCP服务器能够跟多个客户端进行通信,此时我们引入了TCP并发服务器4> 实现TCP并发服务器可以使用:多进程、多线程、IO多路复用。

2024-08-14 22:15:08 298

原创 day36——homework

简单文件传输协议,适用于在网络上进行文件传输的一套标准协议,使用UDP传输。octet:二进制模式(常用)0 未定义,差错错误信息。mail:已经不再支持。1)tftp协议概述。2)tftp下载模型。TFTP通信过程总结。3)tftp协议分析。

2024-08-14 22:08:24 245

原创 day36——多点通信

2> 组播可以实现小范围的数据传播:将需要接收数据的接收端加入多播组,发送端向多播组中发送消息,每个组内成员都能接收到消息。1> 组播也是实现一对多的通信方式,对于广播而言,网络需要对每个消息进行复制转发,会占用大量的带宽,导致网络拥塞。2> 广播:发送端和接收端完成一对多的通信方式,网络将发送端的数据,全部复制一遍发送给每个接收端一份。7> 组播的接收端流程 ------> 类似于UDP的服务器端流程。8> 广播的接收端流程 ----> UDP的服务器端。3> 广播的发送端需要绑定广播地址。

2024-08-13 21:13:04 340

原创 day36——TCP和UDP补充

对于客户端而言,可以绑定也可以不绑定,如果绑定了,则使用自己绑定的ip和端口号。一般的UDP通信:获取对端地址信息 --> 将信息加载到内核 ---> 数据收发 --->获取对端地址信息 --> 将信息加载到内核 ---> 数据收发 --->获取对端地址信息 --> 将信息加载到内核 ---> 数据收发 --->....UDP建立连接后:获取对端地址信息 --> 将信息加载到内核 ---> 数据收发 --->数据收发 --->数据收发 --->数据收发 --->数据收发 --->数据收发 --->

2024-08-13 21:06:27 234

原创 day36——homework

0xff 0x02 x y 0xff 0xff:起始结束协议,固定的;0x02:控制机械手臂协议,固定的;x:指定要操作的机械臂 0x00 红色摆臂 0x01 蓝色摆臂 y:指定角度。通过w(红色臂角度增大)s(红色臂角度减小)d(蓝色臂角度增大)a(蓝色臂角度减小)按键控制机械臂。查看Windows的IP:按住Windows+r 按键,输入cmd , 输入ipconfig。1)基于TCP服务器的机械臂,端口号是8888, ip是Windows的ip;注意:关闭计算机的杀毒软件,电脑管家,防火墙。

2024-08-13 20:58:02 178

原创 day34——TCP和UDP的基础通信

功能:位套接字分配名称参数1:通过socket函数创建出来的套接字文件描述符参数2:通用地址信息结构体,需要根据具体使用的地址族而定, struct sockaddr仅仅只是为了类型的强制转换,防止出现警告跨主机间通信:man 7 ip/* 表示通信域 *//* 端口号的网络字节序 *//* ip地址 *//* IP地址的网络字节序 */同一主机间通信:man 7 uninx/* 表示通信域:AF_UNIX *//* 套接字文件的地址 */参数3:参数2的大小。

2024-08-12 19:29:51 271

原创 day33——网络基础

无名管道有名管道信号。

2024-08-09 21:05:59 726

原创 day31

信号量集主要完成多个进程之间同步问题。

2024-08-07 17:27:02 177

原创 day30

消息队列的消息遵循先进先出原则,如果取出时不指定类型,则默认取第一个,如果指定了类型,则取第一个放入队列中的该消息。2> 该通信机制是独立于进程而存在的:当进程将数据写入该通信对象中后,即使进程已经结束,对象中保存的内容仍然存在。3、共享内存的操作不是一次性的,写入到共享内存中的数据,即使读取出去后,依然存在于共享内存,直到下一次被覆盖。消息队列独立于进程而存在,当一个进程将消息放入队列后,及时进程退出了,也不会删除消息队列中的该消息。放入消息队列中的消息需要进行封装,包括消息类型和消息数据。

2024-08-06 16:52:08 281

空空如也

空空如也

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

TA关注的人

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