位置: IT常识 - 正文

Linux 下使用 C++ 实现的 Web 文件服务器(linux运行c++程序)

编辑:rootadmin
Linux 下使用 C++ 实现的 Web 文件服务器

推荐整理分享Linux 下使用 C++ 实现的 Web 文件服务器(linux运行c++程序),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:linux c++运行,linux运行c++程序命令,linux c++教程,linux运行c++程序,linux进行c++编程,linux中运行c++程序,linux中运行c++程序,linux c++11,内容如对您有帮助,希望把文章链接给更多的朋友!

项目地址:

Github:https://github.com/shangguanyongshi/WebFileServer

在学习完成《TCP/IP 网络编程》和《Linux高性能服务器编程》后,阅读了一些Web服务器的相关代码,自动动手使用 C++11 实现了这个 Linux 下简单 Web 文件服务器,通过浏览器发送 HTTP 请求管理服务器指定文件夹下的所有文件。主要功能包括:

以 HTML 页面形式返回该文件夹下的所有文件可以选择本地文件上传到服务器可以对列表中的文件文件执行下载操作可以删除服务器中的指定文件

HTML 的文件列表页面如下所示:

整体框架使用 Reactor 事件处理模型,通过统一事件源,主线程使用 epoll 监听所有的事件,工作线程负责执行事件的逻辑处理预先创建线程池,当有事件发生时,加入线程池的工作队列中,使用随机选择算法选择线程池中的一个线程处理工作队列的事件使用 HTTP GET 方法获取文件列表,发起下载文件、删除文件的请求。使用 POST 方法向服务器上传文件服务端使用有限状态机对请求消息进行解析,根据解析结果执行操作后,向客户端发送页面、发送文件或发送重定向报文服务端使用 sendfile 函数实现零拷贝数据发送Linux 下使用 C++ 实现的 Web 文件服务器(linux运行c++程序)

功能展示获取文件列表

上传文件

下载文件

删除文件

运行build 项目sh ./build.sh启动文件服务器./main在浏览器端输入 服务端ip:端口号(端口号默认是8888)serverip:8888拓展

由于时间匆忙,该项目仅仅完成了最基础的功能,但是该项目还有很多可以继续拓展的功能,这里简单列出,以后会继续完善:

现有程序中,运行日志直接输入到控制台,另设进程池实现日志服务(实现远程日志服务器)

增加用户注册登陆功能,根据登陆账户提供各自的文件服务

添加定时器定时处理非活动的连接

参考资料《TCP/IP 网络编程》:https://book.douban.com/subject/25911735/《Linux高性能服务器编程》:https://book.douban.com/subject/24722611/TinyWebServer:https://github.com/qinguoyi/TinyWebServer
本文链接地址:https://www.jiuchutong.com/zhishi/298723.html 转载请保留说明!

上一篇:【Vue3】如何创建Vue3项目及组合式API(创建vue3项目的步骤)

下一篇:3DResNet 学习记录(3d representation)

  • 华为p50多少倍变焦(华为p50pro+200倍)

    华为p50多少倍变焦(华为p50pro+200倍)

  • oppo手机怎么退出省电模式(oppo手机怎么退出简易桌面)

    oppo手机怎么退出省电模式(oppo手机怎么退出简易桌面)

  • 美版苹果13可以双卡双待吗(美版苹果13可以插卡吗)

    美版苹果13可以双卡双待吗(美版苹果13可以插卡吗)

  • 微信公众号如何添加好友(微信公众号如何创建)

    微信公众号如何添加好友(微信公众号如何创建)

  • 荣耀30pro为什么50倍变焦很模糊呢(荣耀30pro为什么不能快充)

    荣耀30pro为什么50倍变焦很模糊呢(荣耀30pro为什么不能快充)

  • 苹果不在通讯录有个感叹号(苹果不在通讯录的电话不响)

    苹果不在通讯录有个感叹号(苹果不在通讯录的电话不响)

  • 网易云如何竖屏变横屏(网易云怎么调横屏)

    网易云如何竖屏变横屏(网易云怎么调横屏)

  • 等待揽收中是不是还没有发货(等待揽收状态)

    等待揽收中是不是还没有发货(等待揽收状态)

  • 为什么qq备注变成qq号(为什么QQ备注变成红色的了)

    为什么qq备注变成qq号(为什么QQ备注变成红色的了)

  • magic2屏幕刷新率多少hz(magic2多少hz刷新率)

    magic2屏幕刷新率多少hz(magic2多少hz刷新率)

  • qq邮箱数据格式错误(查一下qq邮箱的格式)

    qq邮箱数据格式错误(查一下qq邮箱的格式)

  • 华为y9在国内叫什么型号(华为y9s国内叫什么)

    华为y9在国内叫什么型号(华为y9s国内叫什么)

  • 如何给airpodspro充电盒充电(如何给AirPodspro开发票)

    如何给airpodspro充电盒充电(如何给AirPodspro开发票)

  • 网页是一种独立的什么文件(网页是构成网站的基本元素,它分为两种类型,分别是)

    网页是一种独立的什么文件(网页是构成网站的基本元素,它分为两种类型,分别是)

  • 怎么把淘宝号变成健康(怎么把淘宝变成英文版)

    怎么把淘宝号变成健康(怎么把淘宝变成英文版)

  • pentium是指(pentium通常所指的什么型号)

    pentium是指(pentium通常所指的什么型号)

  • 苹果11通知栏怎么设置(苹果11通知栏怎么点进去)

    苹果11通知栏怎么设置(苹果11通知栏怎么点进去)

  • 京东闪购后恢复原价吗(京东闪购后恢复出厂设置)

    京东闪购后恢复原价吗(京东闪购后恢复出厂设置)

  • enscape怎样才能没水印(enscape操作步骤)

    enscape怎样才能没水印(enscape操作步骤)

  • 苹果手机语音备忘录怎么关(苹果手机语音备忘录下载)

    苹果手机语音备忘录怎么关(苹果手机语音备忘录下载)

  • x27微信有没有美颜(vivox27手机微信怎么开美颜效果)

    x27微信有没有美颜(vivox27手机微信怎么开美颜效果)

  • 三星微信分身在哪设置(三星手机微信分身在哪里可以找到)

    三星微信分身在哪设置(三星手机微信分身在哪里可以找到)

  • 手机里下载的视频在哪里可以找到(手机内下载的视频)

    手机里下载的视频在哪里可以找到(手机内下载的视频)

  • 酷我如何截取音乐片段(酷我截取音乐片段)

    酷我如何截取音乐片段(酷我截取音乐片段)

  • 彻底解决红米手机卡顿(彻底解决红米手机卡顿红米note7卡顿)

    彻底解决红米手机卡顿(彻底解决红米手机卡顿红米note7卡顿)

  • Word下划线怎么打(word下划线怎么延长)

    Word下划线怎么打(word下划线怎么延长)

  • 城建税的税目是哪些
  • 个体户需要给员工交保险吗
  • 电子税务局怎么添加购票人
  • 税控设备抵减增值税必须当月抵减吗
  • 单位边际贡献和边际贡献一样吗
  • 事业单位私车公用条例
  • 在本公司交社保辞职了还能交吗
  • 自产货物用于本企业在建工程交增值税不
  • 个体户雇佣临时工
  • 公司如何开现金支票给个人
  • 应交消费税通过什么科目核算
  • 取得出口退税款算什么收入
  • 准予结转以后年度怎么算
  • 公司账户拨款工具有哪些
  • 物业公司可以开什么项目的发票
  • 企业所得税讲解
  • 产权交易所怎么赚钱
  • 供应商质量问题告知函
  • 广告制作需要交文化建设费吗
  • 对公账户汇款用途可以随便写吗
  • 增值税视同销售包括哪些情况?
  • 购买的车位应如果要进行税务处理需注意什么?
  • 纯出口企业要交税吗
  • 普通发票红字冲销,需要退回原发票吗
  • etc发票抵扣进项
  • 小企业 企业所得税
  • 公司与个人合伙协议
  • 研发费用领用材料
  • 以土地入股需要开发票吗
  • 利息保障倍数能反映企业偿债能力吗
  • 社保打的生育保险怎么做账
  • 贷款资金取现就无法追查了吗
  • tplink路由器怎么连接无线网络
  • 劳务费费用
  • 资产接收范围的确定
  • 权益法转成本法为什么用账面价值
  • html零基础入门教程
  • 虚拟机安装win11提示无法运行
  • ai形成生成器工具怎么用
  • 委托加工物资如何做账
  • 承兑汇票提前承兑手续费
  • 应纳税所得额中国债利息收入
  • mongodb aggregate 性能
  • python字符串类型及操作
  • 公司缴纳社保如何做账
  • 受托方代收代缴的消费税应计入什么科目
  • sqlserver 中charindex/patindex/like 的比较
  • mysql错误日志在哪里
  • 股权分配和利润的关系
  • 上年度税金及附加多提了,调整后怎么改年报
  • 物业 收电费
  • 以前年度损益调整怎么结转
  • 企业如何进行促销
  • 应交税费借方是增加还是减少
  • 质量不合格怎么说
  • 公交公司财政补贴
  • 营改增后增值税税率的调整
  • 房租费会计分录
  • 景观石属于采购哪个品目
  • 土地的入账科目
  • 购买公司分录怎么写
  • mysql 绿色
  • 将Sublime Text 2固定到Ubuntu启动器的方法
  • mac launchctl
  • 如何设置windows桌面图标
  • SIMETER.EXE - SIMETER是什么进程 有什么用
  • win10 ex4
  • linux讲解
  • win10语音控制电脑
  • win10mobile官网
  • 多个版本python
  • html&js+前端
  • 拖拽js实现
  • 炉石 xhope
  • Node.js中的事件循环是什么意思
  • 安卓焦点
  • Compact 显示和更改 NTFS 分区上的文件或目录压缩
  • three. js
  • js中的set
  • 税务年报截止日期2022
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设