自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 EPOLL

1.当客户端连接时,通过accpet()获取客户端套接字cli_fd,然后通过epoll_ctl()将客户端套接字添加到epoll实例中。2.当客户端发送数据时,epoll监测到这事件,epoll_wait()函数返回,并将事件信息填充到events数组中,event[i].data.fd被设置为发送数据客户端套接字。epool的边缘触发:在客户端的时候加一个 EPOLLET,然后recv()修改为阻塞状态,一次只能读一部分,epoll的条件(水平)触发:全部一下读完,类似键盘的触发事件。

2025-07-17 11:49:48 119

原创 多路复用POLL

当有一个用户发送数据时,会在第二个else执行,if(!当有客户端连接时,if(fds[0].revents$POLLIN) ,成立继续执行,add返回0,没满,-1为满。当有多个客户端发送数据,poll()可以一次监测多个文件描述符上的事件。第一次启动ret一直为0,阻塞在poll();返回值为-1时,说明已经客户端已经满了。原理和select一样,

2025-07-10 11:24:34 136

原创 C++浅拷贝和深拷贝的区别

【代码】C++浅拷贝和深拷贝的区别。

2025-07-04 09:23:21 89

原创 双11服务器

2.可能会覆盖,采用下面的方案进行改进。区别参考如下:致小方的一封信。

2025-07-03 14:06:36 227

原创 多路复用-Select

当多个客户端同时发消息后,一次select()调用,可以发现先多个变化的文件描述符,每次调用select()都会处理所有就绪的的客户端,不需要为每个客户端单独创建线程,节省资源。在tccp的基础之上,但是不用开辟子进程:最后一个for相当于开启子进程。

2025-07-02 09:06:30 248

原创 CMake

cmake1.2.3.

2025-06-11 13:40:22 208

原创 动态库的另一种使用

1.2.续续续3.4.续4.

2025-06-11 10:07:56 217

原创 静态库的使用方法

1.创建看上一个博客,生成的X64文件,为了方便我自创建了文件lib(头文件也加入)

2025-05-23 18:23:05 211

原创 动态库的使用和创建

1.可执行文件目录,库目录,为了方便我创建lib文件夹,我吧.dll,.lib,.h 放入其中。4.自己选择,我选择的是下X64,生成文件(FileName是我复制过来的)3.属性,常规选择动态库即可,生成方案。4..exe同文件下要包含.dll。3.手动输入lib库的名字。2.lib文件中包含.h。三.然后就可以使用了。

2025-05-23 16:57:33 295

原创 虚函数的解释

虚函数可以重写,也可以不重写,但是纯虚函数必须要重写否则报错。不重写调用父类,重写调用子类(使用子类调用虚函数)

2025-04-07 10:18:45 180

原创 git在cmd的操作

1.现在已经克隆到本地了我在本地添加了个文件下面进行推送创建新的分支已经成功

2025-03-07 16:44:09 341

原创 GIT的上传和下载

直接创建空项目,填写Gitee上的地址即完成克隆。输入gitee上的地址(创建仓库时的地址)第一次的时候需要输入用户名(邮箱)和密码。选择全部提交,全部提交并同步。1.点击创建GIT存储仓库。从gitee上拉取项目。

2025-03-04 16:17:57 541

原创 JUCE的分享

4.解压到C盘根目录下会有,此时不用改,newproject-global path里面查看。2.放到C盘的根目录。

2025-03-03 16:28:15 205

原创 json-1

json

2025-02-25 16:18:24 105

原创 opencv摄像头

【代码】opencv摄像头。

2025-01-03 12:12:24 94

原创 opencv

【代码】opencv。

2024-12-20 08:39:15 145

原创 QT-TCP客户端

连接成功会发送 connected信号。connectToHost(QHostAddress(ip地址),端口号);连接失败/断开连接会发送 disconnected信号。3.当点击按钮时,在点击函数中调用write();思路:需要定义一个槽函数中,调用read();在按钮connected,写个点击函数,进行连接和断开。思路:为这两个信号写两个槽函数。1.先创建标签和按钮。

2024-12-10 15:30:00 280

原创 QT多线程

QT多线程1

2024-12-07 10:00:00 225

原创 QT创建50个子线程

wait防止,主线程结束,子线程还没结束,等待子线程结束。注意不要死锁,自己出不出,别人进不来。

2024-12-07 10:00:00 217

原创 QT 贪吃蛇

贪吃蛇

2024-12-06 11:19:33 382

原创 QT定时器法二

计时器方法二

2024-12-05 09:03:21 235

原创 QT 2048

2048

2024-12-05 09:00:00 285

原创 QT定时器方法一

定时器1

2024-12-04 23:31:37 181

原创 设计模式——模板方法模式

模版方法模式是一种代码复用技术,他在类库中设计特别重要,它提取了类库中的公共行为,将公共行为放在父类,而通过其他子类来实现不同的行为,它鼓了我们恰当使用继承来实现代码复用。在模版方法模式中可以通过子类来覆盖父类的基本方法,不同子类可以提供基本方法的不同实现,更换和增加新的子类很方便,符合单一职责和开闭原则。在父类中定义一个算法,而右它的子类来实现细节处理,在子类实现详细的处理算法并不会改变算法中步骤的执行顺序。可实现一种反向控制结构,通过子类覆盖父类的钩子方法来决定是否需要执行。

2024-11-19 12:01:03 432

原创 设计模式——外观模式

4.网络切换:信号处理,资源管理,网络配置....这些实现非常复杂,可以通过外观模式来简化用户对这些(4g,5g)转换。1.迪米特法则:知道很少的事情就把问题解决了,两个类之间不必通信,也就是说,两个类之间不用相互的作用。1.汽车的控制系统:汽车中包含多个复杂的子系统,发动机,导航系统,空调系统,车载娱乐,通过外观模式,3.媒体播放器:在开发一个视频或音频播放器时,视频音频的解码,字幕处理,播放控制都是复杂的子系统。5.游戏的默认:背景音乐,分辨率,图形质量,鼠标的灵敏度,窗口的大小.......

2024-11-18 10:09:08 518

原创 使用C++容器写一个简单的通信录

【代码】使用C++容器写一个简单的通信录。

2024-11-08 10:14:28 439

原创 MVC模式结构

2024-11-08 08:29:10 149

原创 C++文件的读取操作

fstream 对文件的读写操作,继承了ofstream\ifstream类的功能。1. ofstream 对文件的写操作,继承了ostream类的功能。ifstream 对文件的读操作,继承了istream类的功能。对文件操作,打开才能写。

2024-11-04 13:31:44 215

原创 设计模式之——简单工厂模式

果需要更改加法算法,只需要更改 Add 类就可以。如果要增加其他运算,比如平方根、正弦、自然对数等,只要增加相应的运算子类和修改运算类工厂(在 switch 中增加分支)即可。首先,定义一个产品的基类或接口,所有具体产品类都应该实现这个基类或接口。

2024-11-04 11:28:05 471 1

原创 设计模式之——单例模式

单例模式的作用确保一个类只有一个实例,并提供一个全局访问点来访问该实例。这种模式通常用于需要全局访问点的情况,比如日志记录器,配置管理,数据库连接...。可以通过单例模式,可以避免多个实例的创建的占用过多系统资源,同时也可以确保数据的一致性和避免多线程环境下的竞态条件。

2024-11-04 11:05:49 584

原创 C++浅拷贝与深拷贝

浅拷贝与深拷贝

2024-11-04 10:19:22 193

原创 力扣287.寻找重复数

【代码】力扣287.寻找重复数。

2024-11-01 13:41:03 247

原创 C++——酒店管理系统

setName\setSex\setId (可选)构造函数 (读酒店信息文件进行构造)层数、每层房数、房间对象(三级指针)房号、房型、房价、入住数、旅客数组。姓名、性别、身份证号。酒店类:(单例模式)4 第一层房间数。

2024-10-28 17:28:15 1581

原创 C++——NetWork

封装工具

2024-10-23 12:03:38 674

原创 网络聊天室项目:threadpool+network

2、接收客户端名字,告诉所有的在线的客户端,xxX进入聊天。3、接收客户端消息,转发给其他客户端。4、通知其他客户端 xxx退出聊天室。注意:任何客户端都可以随时进入或退出。1、开启线程池、等待客户端连接。5、同时在线人数最多50人。2、发送消息|接收消息。

2024-10-12 11:50:50 619

原创 连接工具的封装(支持TCP,UDP)的共享文件——network

使用 gcc code.c -lnetwork。3.工具已经封装好了,下面进行使用。将代码部分完成后,对其进行封装。1.写network.h。2.写network.c。

2024-10-11 08:33:48 523

原创 封装的线程池——threadpool

3.线程池已经封装好了,先在来写服务器,和客户端来测试。tcp_s.c:服务端。1.首先写一个队列来存,线程。2.利用队列,写一个线程池。tcp_c.c 客户端。

2024-10-10 16:16:27 384 1

原创 续二维指针,带头结点类型

1.fun函数的str是一个复制品,所以不能改变原函数的str的值。二级指针存储的是一级指针的地址。2.二级指针才能改一级指针的指向。

2024-10-09 17:36:10 246

原创 线程竞争死锁

4.环形等待:进程A在等待进程B持有的资源,进程B又在等待进程C持有的资源,最终进程C又在等待进程A持有的资源,这样就形成了一个循环等待的状态。3.资源不可剥夺:一旦某个线程或进程获得某个资源,就不能被其他进程或线程强制抢夺或剥夺,只有资源的占用才能完成任务后主释放。2.破坏占用且请求:采用预分配的方式,线程或进程在执行前,必须一次性的申请所有的资源,确保执行时不会有新的请求。缺点:系统的资源可能会严重的浪费,有的资源开始时使用,有的资源最后使用。缺点:现实的影响和资金的影响,共享内存很难实现。

2024-10-08 09:33:32 183

原创 大端存储,小端存储

大端存储,小端存储

2024-09-20 16:16:28 117

空空如也

空空如也

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

TA关注的人

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