- 博客(9)
- 收藏
- 关注
原创 三、时间轮定时器&&正则表达式&&any通用类
在我们的项目中,为了让服务器能够断开掉非活跃连接,我们可以使用Linux给我们提供的定时器。下面这段代码演示了Linux定时器的使用上边例子,是⼀个定时器的使用示例,是第一次等待3s后每隔1s钟触发⼀次定时器超时,否则就会阻塞在read读取数据这里。基于这个例子,则我们可以实现每隔1s,检测⼀下哪些连接超时了,然后将超时的连接释放掉。时间轮思想:上述的例子,存在⼀个很大的问题,每次超时都要将所有的连接遍历⼀遍,如果有上万个连接,效率无疑是较为低下的。
2023-12-01 22:49:10
885
1
原创 二、功能模块划分
然 后调用由组件使用者传入的新数据到来回调函数进行处理。Connection模块是对Buffer模块,Socket模块,Channel模块的⼀个整体封装,实现了对⼀个通信套 接字的整体的管理,每⼀个进⾏数据通信的套接字(也就是accept获取到的新连接)都会使⽤ Connection进行管理。Channel模块是对⼀个描述符需要进⾏的IO事件管理的模块,实现对描述符可读,可写,错误...事件的 管理操作,以及Poller模块对描述符进⾏IO事件监控就绪后,根据不同的事件,回调不同的处理函数功能。
2023-11-30 22:34:39
1190
原创 一、项目介绍以及前置知识介绍
通过该项目实现的高并发服务器组件可以简洁快速的完成一个高性能服务器的搭建。并且通过组件內提供的不同应用层协议支持,也可以快速完成一个高性能应用服务器的搭建(该项目实现的组件只提供了对HTTP协议的支持)。在这里要明确的是,该项目实现的是一个高并发服务器组件,因此当前项目中并为了完成该项目需要对一些前置知识有一定的了解,接下来我会一一对不同的前置内容做出解释。
2023-11-29 13:29:24
860
1
原创 c++学习笔记自看:类和对象
C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。C++是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成。C语言结构体中只能定义变量,在C++中,结构体内不仅可以定义变量,也可以定义函数。类的两种定义方式: 1. 声明和定义全部放在类体中,需注意:成员函数如果在类中定义,编译器可能会将其当成内联函数处理。2. 类声明放在.h文件中,成员函数定义放在.cpp文件中,注意:成员函数名前需要加类名::一般情况下,更期望采用第二种方式。
2023-03-24 22:53:48
80
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人