当前位置: 首页 > news >正文

游戏资源传输服务器

目录

  • 项目简介
  • 项目实现
    • nginx配置
    • 服务器逻辑图
  • 项目代码简介
    • reactor 模型部分
    • 文件传输部分
  • 项目演示
    • 视频演示
    • 演示分析

项目简介

  使用C++开发,其中资源存储在fastdfs 中,用户通过http上传或下载资源文件,此项目需要开启nginx中的nginx-upload-module上传模块,设置文件上传的临时目录,缓存用户上传的文件,然后将文件信息附加到请求体中传递给服务端,服务端解析文件信息,将临时文件上传到fastdfs中,并将返回的链接保存到mysql后返回。
  用户通过从mysql获取fastdfs返回的长链文件地址,然后通过nginx中的ngx_fastdfs_module模块从fastdfs下载对应资源,实现资源下载。

项目实现

nginx配置

  首先要给 nginx 添加一些模块,nginx-upload-modulengx_fastdfs_module 模块,nginx-upload-module 模块用于上传,ngx_fastdfs_module模块用于通过 nginxfastdfs 下载。
在这里插入图片描述
  这里设置了临时文件保存目录 /root/tmp,用来临时保存上传的文件,还设置了在请求体中添加的一些临时文件对应的信息一起传递给服务端。
  可以从后续服务端的日志输出中看出这些配置是生效了的
在这里插入图片描述

服务器逻辑图

下图为传输服务器核心逻辑
在这里插入图片描述

项目代码简介

reactor 模型部分

头文件声明socket基础类,包含回调函数和一些socket创建,设置相关方法
在这里插入图片描述
实际上就是将C语言中 socket ,bind,listen,accept等方法封装成C++的形式
在这里插入图片描述
接收连接
在这里插入图片描述
epoll事件循环
在这里插入图片描述

文件传输部分

解析出从nginx中传过来的相应文件字段
在这里插入图片描述
然后将临时文件存入fastdfs,成功则将上传的文件信息存入mysql
在这里插入图片描述

项目演示

视频演示

资源传输服务器项目演示

演示分析

  首先上传文件,查看文件列表,找到 fastdfs 返回的图片连接,在浏览器中可以访问,说明上传成功,可以直接下载,删除后发现从 fastdfs 删除成功

相关文章:

  • Android中RelativeLayout相对布局使用详解
  • 数字IC后端实现教程 | Early Clock Flow和Useful skew完全不是一个东西
  • 按键精灵ios脚本新增元素功能助力辅助工具开发(一)
  • 【PyTorch】深度学习实践——第二章:线性模型
  • LVGL输入设备管理
  • Dinky 安装部署并配置提交 Flink Yarn 任务
  • 11. CSS从基础样式到盒模型与形状绘制
  • C++学习之路,从0到精通的征途:继承
  • 基于脑功能连接组和结构连接组的可解释特定模态及交互图卷积网络|文献速递-深度学习医疗AI最新文献
  • 在虚拟机Ubuntu18.04中安装NS2教程及应用
  • 大白话解释联邦学习
  • hadoop3.x单机部署
  • Mysql索引优化
  • Spring Boot之Web服务器的启动流程分析
  • 【android bluetooth 框架分析 02】【Module详解 7】【VendorSpecificEventManager 模块介绍】
  • 使用光标测量,使用 TDR 测量 pH 和 fF
  • AI 模型训练轻量化技术在军事领域的实战应用与技术解析
  • ​​华为云服务器:智能算力网格​
  • Vue 3.5 新特性深度解析:全面升级的开发体验
  • MQTT协议详解:物联网通信的轻量级解决方案
  • 联合国秘书长欢迎中美经贸高层会谈成果
  • 来伊份发布关于消费者反映蜜枣粽问题处理的情况说明:与消费者达成和解
  • 海北州委常委、常务副州长桑本履新青海省供销社理事会主任
  • 应急部:正在积极推动各地逐步科学建设改造应急避难场所
  • 人民日报:浙江着力提升民营企业核心竞争力
  • 社恐也能嗨起来,《孤独摇滚》千人观影齐舞荧光棒