# FlyServerEngine
FlyServerEngine是基于Linux操作系统下由C语言编写的服务器引擎,该引擎由四个层次组成:
| 层次 | 说明 |
| -------------- | ------------------------------------------------- |
| Process Layer | 处理层 数据的识别,处理与输出等数据加工接口 |
| Network Layer | 网络层 基础的网络协议与网络数据传输等网络相关接口 |
| Resource Layer | 资源层 相关文件操作和数据库操作等资源相关接口 |
| Core Layer | 核心层 基础的数据结构和数学函数等基础函数接口 |
以上四个层次由低至高为 Core Layer -> Resource Layer -> Network Layer -> Process Layer,应基于"高层能调用低层的接口,而低层无法调用高层的接口"的原则来构建该引擎
用户应使用Linux操作系统运行以下代码(已用makefile文件集合),以在bin文件夹输出server.out可执行文件
```shell
make
```
makefile 文件
```shell
.PHONY: clear
all: ./src/coreLink.o ./src/coreTree.o ./src/coreJson.o ./src/coreMd5.o ./src/corePthreadPool.o ./src/resourceSQL.o ./src/networkServer.o ./src/networkHttpHeader.o main.o
g++ -g ./src/coreLink.o ./src/coreTree.o ./src/coreJson.o ./src/coreMd5.o ./src/corePthreadPool.o ./src/resourceSQL.o ./src/networkServer.o ./src/networkHttpHeader.o main.o -o ./bin/server.out -lpthread -lmysqlclient
./src/coreLink.o: ./src/coreLink.cc
g++ -g -I./include -c ./src/coreLink.cc -o ./src/coreLink.o
./src/coreTree.o: ./src/coreTree.cc
g++ -g -I./include -c ./src/coreTree.cc -o ./src/coreTree.o
./src/coreJson.o: ./src/coreJson.cc
g++ -g -I./include -c ./src/coreJson.cc -o ./src/coreJson.o
./src/coreMd5.o: ./src/coreMd5.cc
g++ -g -I./include -c ./src/coreMd5.cc -o ./src/coreMd5.o
./src/corePthreadPool.o: ./src/corePthreadPool.cc
g++ -g -I./include -c ./src/corePthreadPool.cc -o ./src/corePthreadPool.o
./src/resourceSQL.o: ./src/resourceSQL.cc
g++ -g -I./include -c ./src/resourceSQL.cc -o ./src/resourceSQL.o
./src/networkServer.o: ./src/networkServer.cc
g++ -g -I./include -c ./src/networkServer.cc -o ./src/networkServer.o
./src/networkHttpHeader.o: ./src/networkHttpHeader.cc
g++ -g -I./include -c ./src/networkHttpHeader.cc -o ./src/networkHttpHeader.o
main.o: main.cpp
g++ -g -I./include -c main.cpp -o main.o
clear:
rm ./src/*.o main.o
```
**用户应仅在Procss Layer层改写并加入数据加工的具体代码以达到数据的自定义加工,越低层的代码可修改性越差**
以下是各层基本函数接口,相关数据结构和相关说明:
## Process Layer 处理层
------
**该层在main.cpp文件中**
未实现:文件权限管理\
### processMes 信息加工与回复
int processMes(int fd);
对文件描述符fd中的信息加工并回复
## Network Layer 网络层
------
未实现:http头读写(可以优化HttpHeader_fd_init())
### Srever 网络监听和多线程调用
**server_start**
void server_start(const short unsigned int PORT, const char *IP, const unsigned int PTHREAD_MAX, const unsigned int EPOLL_SIZE, int (*processMes)(int fd));
新建一个在IP:PORT上的监听,其中使用了线程池(PTHREAD_MAX为线程个数)和EPOLL(EPOLL_SIZE为EPOLL最大监听个数)
### HttpHeader Http协议头的创建与读取
**数据结构**
```c
typedef struct requestHeaderValue {
char *n_header;
char *n_value;
} requestHeaderValue;
typedef struct HttpHeader {
char *n_requestLine;
Tree *n_requestHeader;
} HttpHeader;
```
**requestHeaderValue_init**
requestHeaderValue *requestHeaderValue_init(char *header, char *value);
创建相应的一条消息头,失败返回NULL
**requestHeaderValue_print**
void requestHeaderValue_print(requestHeaderValue *rhv);
输出消息头内容
**requestHeaderValue_free**
void requestHeaderValue_free(requestHeaderValue *rhv);
释放消息头结构
**HttpHeader_init**
HttpHeader *HttpHeader_init();
创建一个空的http协议结构,失败返回NULL
**HttpHeader_fd_init**
HttpHeader *HttpHeader_fd_init(int fd);
根据一个文件描述符创建相应的http结构,失败返回NULL
**HttpHeader_insertRequestHeader**
int HttpHeader_insertRequestHeader(HttpHeader *hh, requestHeaderValue *rhv);
插入新的消息头结构,成功返回0.失败返回-1
**HttpHeader_print**
void HttpHeader_print(HttpHeader *hh);
输出一个http协议结构
**HttpHeader_free**
void HttpHeader_free(HttpHeader *hh);
释放一个http协议结构
## Resource Layer 资源层
------
未实现:文件创建和删除返回文件描述符\文件大小格式等属性的获取\文件描述符的读写\分段文件管理
### SQL MYSQL数据库操作
**MYSQL_init**
MYSQL *MYSQL_init(const char *HOST, const char *USERNAME, const char *PASSWORD, const char *DATABASE, unsigned int timeout);
创建一个相应的MYSQL
**exeSql**
void exeSql(MYSQL *sqlConnection, const char *sql, int fd);
在sqlConnection所对应的数据库中执行sql语言并将其输出到fd中
MYSQL_free
void MYSQL_free(MYSQL *sqlConnection);
释放sqlConnection
## Core Layer 核心层
------
未实现:日志输出(调试日志和系统日志)\字符串类型\开根号\日期\图\哈希表\循环队列\红黑树\hashMap
### Link 链表
**数据结构**
```c
// 链表节点
typedef struct LinkNode {
void *n_value; //节点值
struct LinkNode *n_next; //next节点
} LinkNode;
// 链表
typedef struct Link {
int n_linkNodeNum; //链表节点数
LinkNode *n_head; //头节点
LinkNode *n_tail; //头节点
} Link;
```
**LinkNode_init**
LinkNode *LinkNode_init(void *value);
将value作为n_value创建新的LinkNode,成功返回新建的LinkNode,失败返回NULL
**LinkNode_print**
void LinkNode_print(LinkNode *ln, void (*fun_printValue)(void *));
以fun_printValue函数方法输出ln的n_value值
**LinkNode_free**
void LinkNode_free(LinkNode *ln, void (*fun_freeValue)(void *));
以fun_freeValue的方式释放ln的n_value 并 释放LinkNode
**Link_init**
Link *Link_init();
创建新的Link,成功返回新建的Link,失败返回NULL
**Link_disPlayNode**
void Link_disPlayNode(Link *l, void (*fun_printValue)(void *));
遍历Link的Node,并以fun_printValue的方法输出各个Node的n_value值
**Link_getLength**
int Link_getLength(Link *l);
返回Link的n_linkNodeNum值,如果l为NULL则返回-1
**Link_queryValue**
int Link_queryValue(Link *l, void *value, int (*fun_compareValue)(void *, void *));
以fun_compareValue方法比较value值是否一致以查询l里是否存在value值,成功则返回该节点所在数,失败则返回0,如果l为NULL则返回-1
**Link_insertNode**
int Link_insertNode(Link *l, int nodeNum, LinkNode *newln);
将newln插入到l的第nodeNum个节点处(从0开始),成功返回1,失败返回0,如果l为NULL则返回-1
**Link_insertValue**
int Link_insertValue(Link *l, int nodeNum, void *value);
新建一个值为value的newln插入到l的第nodeNum个节点处(从0开始),成功返回1,失败返回0,如果l为NULL则返回-1
**Link_headInsertNode**
int Link_headInsertNode(Link *l, LinkNode *newln);
将ln插入l的头节点,成功返回1,失败返回0,如果l或newln为NULL则返回-1(失败的唯一方法为l或newln为NULL)
**Link_headInsertValue**
int Link_headInsertValue(Link *l, void *value);
新建一个值为value的ln插入l的头节点,成功返回1,失败返回0,如果l或newln为NULL则�
没有合适的资源?快使用搜索试试~ 我知道了~
基于c语言的多线程高并发服务器.zip
![preview](https://csdnimg.cn/release/downloadcmsfe/public/img/white-bg.ca8570fa.png)
共48个文件
h:21个
cc:18个
md:2个
![preview-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/scale.ab9e0183.png)
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 125 浏览量
2024-06-03
15:59:47
上传
评论
收藏 104KB ZIP 举报
温馨提示
基于c语言的多线程高并发服务器C++是一种广泛使用的编程语言,它是由Bjarne Stroustrup于1979年在新泽西州美利山贝尔实验室开始设计开发的。C++是C语言的扩展,旨在提供更强大的编程能力,包括面向对象编程和泛型编程的支持。C++支持数据封装、继承和多态等面向对象编程的特性和泛型编程的模板,以及丰富的标准库,提供了大量的数据结构和算法,极大地提高了开发效率。12 C++是一种静态类型的、编译式的、通用的、大小写敏感的编程语言,它综合了高级语言和低级语言的特点。C++的语法与C语言非常相似,但增加了许多面向对象编程的特性,如类、对象、封装、继承和多态等。这使得C++既保持了C语言的低级特性,如直接访问硬件的能力,又提供了高级语言的特性,如数据封装和代码重用。13 C++的应用领域非常广泛,包括但不限于教育、系统开发、游戏开发、嵌入式系统、工业和商业应用、科研和高性能计算等领域。在教育领域,C++因其结构化和面向对象的特性,常被选为计算机科学和工程专业的入门编程语言。在系统开发领域,C++因其高效性和灵活性,经常被作为开发语言。游戏开发领域中,C++由于其高效性和广泛应用,在开发高性能游戏和游戏引擎中扮演着重要角色。在嵌入式系统领域,C++的高效和灵活性使其成为理想选择。此外,C++还广泛应用于桌面应用、Web浏览器、操作系统、编译器、媒体应用程序、数据库引擎、医疗工程和机器人等领域。16 学习C++的关键是理解其核心概念和编程风格,而不是过于深入技术细节。C++支持多种编程风格,每种风格都能有效地保证运行时间效率和空间效率。因此,无论是初学者还是经验丰富的程序员,都可以通过C++来设计和实现新系统或维护旧系统。3
资源推荐
资源详情
资源评论
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
收起资源包目录
![package](https://csdnimg.cn/release/downloadcmsfe/public/img/package.f3fc750b.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/HTML.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
共 48 条
- 1
资源评论
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
![avatar](https://profile-avatar.csdnimg.cn/d7864c98224046ec9a7f43fa6207c84e_qq_51320133.jpg!1)
生瓜蛋子
- 粉丝: 3842
- 资源: 6140
![benefits](https://csdnimg.cn/release/downloadcmsfe/public/img/vip-rights-1.c8e153b4.png)
下载权益
![privilege](https://csdnimg.cn/release/downloadcmsfe/public/img/vip-rights-2.ec46750a.png)
C知道特权
![article](https://csdnimg.cn/release/downloadcmsfe/public/img/vip-rights-3.fc5e5fb6.png)
VIP文章
![course-privilege](https://csdnimg.cn/release/downloadcmsfe/public/img/vip-rights-4.320a6894.png)
课程特权
![rights](https://csdnimg.cn/release/downloadcmsfe/public/img/vip-rights-icon.fe0226a8.png)
开通VIP
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
最新资源
- 单片机常用芯片和器件手册.zip
- C51论坛离线浏览资料.chm
- 单片机指令速查表.doc
- 设定80C51串行异步通讯的波特率.zip
- 创新MOM培训文档_物料主数据之包材_240625.pptx
- 医学图像分类数据集:CT胸部扫描癌症分类(4分类)【包括划分好的数据、类别字典文件、python数据可视化脚本 】
- 基于C51单片机设计四位数字频率计数码管显示实验Proteus仿真及软件实例源码.zip
- 基于C51单片机设计MAX7221数码管动态显示程序Proteus仿真及软件实例源码.zip
- DS18B20温度传感器实战应用与源码解析.zip
- python-leetcode面试题解之第384题打乱数组.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)