自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 找工作小项目:day16-重构核心库、使用智能指针(3)

最后将使用这个库的方式进行展示。

2024-06-17 22:15:37 499

原创 找工作小项目:day16-重构核心库、使用智能指针(2)

太多了分一篇写。

2024-06-17 21:16:47 1249

原创 找工作小项目:day16-重构核心库、使用智能指针(1)

今天是该项目开源在gthub的最后一天,我这里只是将我自己对于这个项目的理解进行总结,如有错误敬请包含指正,今天会整体理一遍代码,并使用智能指针管理整个项目。

2024-06-17 11:22:03 1078

原创 找工作小项目:day15-macOS支持、完善逻辑

声明部分就可以很直观地看出来,两者同属一系,仅仅是多了一部分适用于macOS的定义。~Epoll();~Poller();

2024-06-14 10:58:25 712

原创 找工作小项目:day14-完善Connection类

今天将事件处理的部分封装成了Connection的方法,通过Connection对事件进行处理,并根据需求调用不同的处理函数,业务逻辑由Connection控制转交到了自定义控制。在之前的Echo中可以完成服务器读取并回显到客户端,而现在可以自定义逻辑,如break;return 0;首先,这里没有服务器和事件循环,仅仅使用了一个裸的Connection类来表示从客户端到服务器的连接。

2024-06-09 21:06:15 889

原创 找工作小项目:day13-工程化

该项目编译的过程都是使用CMake完成的,不过由于之前的文件都放在同一个文件夹中并没有分类。随着模块越来越多项目逐渐就变成了屎山,可读性极低,为了方便管理我们的项目这里开始使用CMake。首先将项目的树结构进行更改可以看出来结构化后文件更多了,但是大都是一些使用CMake及Clang的支持文件,而工程文件仍旧在src中,只是将头文件和cpp文件进行拆分。首先还是看一下在工程文件中发生了什么变化。

2024-06-05 18:09:30 315

原创 找工作小项目:day12-主从Reactor模式

day12完成了多Reactor多线程,最主要的差别是在分配处理的方式上,即将newConnection绑定到main-Reactor上并在newConnection中进行分配,分配方案使用的是哈希表分配,这个调度方案使得每个线程负载相同,然而,不同的业务传输的数据极有可能不一样,也可能受到网络条件等因素的影响,极有可能会造成一些subReactor线程十分繁忙,而另一些subReactor线程空空如也,这只需要在事件中加入相应的标志,并根据标志利用线程池进行任务优先级分配,下面是一段类似于伪代码的改写。

2024-06-03 13:17:07 925

原创 找工作小项目:day11-完善线程池

day10的任务中设计了一个线程池来处理任务,完成单Reactor多线程的模式设计,由于任务队列的添加、取出都存在拷贝操作,线程池不会有太好的性能,只能用来学习,今天就会对线程池进行改进,之前的文章中有更为复杂的设计,有兴趣可以看一下。

2024-05-31 14:31:05 1004

原创 找工作小项目:day10-向服务器中加入线程池

现在已经基本完成了单 Reactor 多线程,即EventLoop用来分发任务,线程用来处理任务,Acceptor用来建立连接,Connection用来删除链接。

2024-05-29 11:15:02 533

原创 找工作小项目:day9-缓冲区构建

之前构造的缓冲区是利用字符串数组构建的,注意之前有说过在客户端发送给服务端一个信号后,服务端会回显给客户端,客户端读取方式仍然是面向过程的,而面向对象的目前只针对服务器。今天开始,由于有了新的缓冲区,古早的客户端也将发生改变。老规矩通过标题复习一下之前做的所有工作。

2024-05-28 12:04:04 265

原创 找工作小项目:day8-将连接抽象出来

感觉还是挺乱的,那么总结一下这个最终变成什么关系了呢?Server类目前只作为一个对外的接口,其功能包含创建服务器(Acceptor)、创建连接(Acceptor)、处理事件(Connection)以及关闭连接(Server)四个功能main-Reactor(EventLoop)单独创建,其对每一个事件进行分配处理任务,即找到相关任务处理方。

2024-05-27 17:02:14 948

原创 day7-创建Acceptor

今天应该是将Handler、Acceptor以及Reactor彻底分开了,各自安好,抽象的要梳理很久。

2024-05-26 20:21:34 811

原创 找工作小项目:day6-事件驱动

问题1:什么是事件驱动?之前的代码中,我们发现最主要的一直发生变化的就是服务器,服务器最主要的工作是监听epoll上的事件并对不同事件做出不同响应,这就是事件驱动。问题2:事件驱动有哪些模式?(这里的回答借鉴于https://www.zhihu.com/question/26943938/answer/1856426252)主要分为Reactor模式和Proactor模式,这里主要说Reactor,Proactor在链接里有讲。Reactor模式是。(day5之前的代码都是这个样子)

2024-05-26 13:14:36 782

原创 找工作小项目:day5-channel的使用

回忆一下,之前关于epoll的使用都是将某个socket加入到红黑树中,但是我们从来没在乎过事件是什么,事件需要我们做什么处理,今天要加入的channel就是为了能区分事件类型,那么接下来看看channel是怎么做的吧。

2024-05-25 18:33:15 900

原创 找工作小项目:day4-将socket、地址、epoll进行类封装,走向面对对象编程

今天的内容很简单,将面向过程转向面向对象,即将程序封装成类。今天被问了个问题,什么情况下使用socket懵了,细想下应该是在进行进程间通信的过程中需要用到socket,不要被限制到服务器和客户端。

2024-05-24 20:02:50 402 1

原创 找工作小项目:day3-高并发epoll

之前的实现只能帮助我们处理一个客户端的链接,仅有一个客户端独占服务器是极其浪费资源的做法。那么如何实现为多个客户端服务,就需要用到epoll。按照我的理解,这玩意就是一个由端口组成的红黑树,只不过是被监视的树。

2024-05-24 10:09:45 282 1

原创 找工作小项目:day2-错误检测机制及读写操作

在程序编写过程中,我们不希望只看到编译器给我们的错误,在较大的项目中难以定位错误发生的位置,感觉和ICMP协议较为相似用以返回各种错误信息。服务器/客户端开始读写数据就需要缓存区buffer出现了,计算机网络中很多关于buffer的知识,窗口大小等一系列。

2024-05-23 11:33:48 265

原创 找工作小项目:day1-建立套接字

在回环地址上建立服务器用8888端口接收数据包。

2024-05-23 10:06:15 294 1

翻译 对unified-IO代码的整理

APU 由五个通道组成:方波 1、方波 2、三角波、噪声、三角调制通道(DMC)。每个通道都有一个为波形发生器提供时钟的可变速率定时器,以及由帧序列器的低频时钟驱动的各种调制器。DMC 播放采样,而其他通道则播放波形。波形通道具有持续时间控制功能,有些还具有音量包络单元,还有几个具有频率扫描单元。方形 1/方形 2$4000/4 ddle nnnn 占空比、环路环境/禁用长度、环境禁用、体积/环境周期$4001/5 EPPP NSSS 启用扫描、周期、负值、移位。

2024-04-15 17:25:49 72 1

原创 C++百行项目,实现多线程池,ThreadPool代码解析

该项目是一个实现多线程池的简单项目,我将它作为简单的C++项目入门,代码并不多但是精读该代码对于学习C++的新特性以及线程实现有很好的作用。本文会详细讲解代码及使用的库特性,作为初学者如有错误敬请指正。找工作学习的第一个小项目,如有错误敬请指正讨论,一起提高。

2024-01-17 17:16:13 1446

原创 VS中scanf_s使用出现的问题

关于vs中对于scanf_s修改发现的问题,尤其是使用scanf_s读取字符时发现的问题。首先,对于scanf_s读取字符时的格式,这里要明确说一点,scanf_s不是scanf其使用格式是不相同的,读取字符时的使用格式为:scanf_s("%c",变量地址,读取字符长度上限);,也就是说当我们按照scanf的方法使用scanf_s时可能会出现读取参数不足的问题。其次就是经过使用发现,当我们同时使用多个scanf_s时会发现其会跳过多个scanf_s,这是因为在每一个scanf_s后都会产生一个莫名其妙

2020-10-13 16:09:15 1263

空空如也

空空如也

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

TA关注的人

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