位置: 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)

  • 怎样设置路由器让网速变快(怎样设置路由器)(怎样设置路由器穿墙功能)

    怎样设置路由器让网速变快(怎样设置路由器)(怎样设置路由器穿墙功能)

  • ios8 自带壁纸原图(ios8 越狱)(ios8自带壁纸原图高清)

    ios8 自带壁纸原图(ios8 越狱)(ios8自带壁纸原图高清)

  • 小天才的休息模式怎么退出(小天才的休息模式怎么开)

    小天才的休息模式怎么退出(小天才的休息模式怎么开)

  • 抖音不互相关注能发信息吗(抖音不互相关注能私信几条)

    抖音不互相关注能发信息吗(抖音不互相关注能私信几条)

  • iq00neo和iq00区别(vivo iq00和 neo对比)

    iq00neo和iq00区别(vivo iq00和 neo对比)

  • 手机网络限速了怎么办(手机网络限速了怎么设置)

    手机网络限速了怎么办(手机网络限速了怎么设置)

  • 为什么苹果自带的天气显示不出来(为什么苹果自带软件无法下载)

    为什么苹果自带的天气显示不出来(为什么苹果自带软件无法下载)

  • qq等级一颗星星是多少天(qq等级一颗星星多少天)

    qq等级一颗星星是多少天(qq等级一颗星星多少天)

  • 手机应该怎么进入pornhub(手机怎么进去)

    手机应该怎么进入pornhub(手机怎么进去)

  • 用一淘下单卖家知道吗(用一淘下单卖家订单看得到吗)

    用一淘下单卖家知道吗(用一淘下单卖家订单看得到吗)

  • realme x50 pro是什么牌子(realmex50pro是什么屏幕)

    realme x50 pro是什么牌子(realmex50pro是什么屏幕)

  • 无响应已超时什么意思(无响应 已超时)

    无响应已超时什么意思(无响应 已超时)

  • dell supportassist是什么软件

    dell supportassist是什么软件

  • 闲鱼有七天无理由退货吗(闲鱼有七天无理由么)

    闲鱼有七天无理由退货吗(闲鱼有七天无理由么)

  • 为什么拼多多删除不了(为什么拼多多删了还能收到信息)

    为什么拼多多删除不了(为什么拼多多删了还能收到信息)

  • 全局护眼有什么作用(全局护眼什么时候开合适)

    全局护眼有什么作用(全局护眼什么时候开合适)

  • 转让qq群的条件是什么(转让qq群需要对方同意吗)

    转让qq群的条件是什么(转让qq群需要对方同意吗)

  • 苹果耳机脏了怎么清洗(苹果耳机脏怎么办)

    苹果耳机脏了怎么清洗(苹果耳机脏怎么办)

  • 手机qq音乐头像怎么换(手机qq音乐头像怎么和qq同步)

    手机qq音乐头像怎么换(手机qq音乐头像怎么和qq同步)

  • 磁盘属于内存储器吗(磁盘是内存条吗)

    磁盘属于内存储器吗(磁盘是内存条吗)

  • iphonexr支持2a充电吗(iphonexr可以用5v2a的充电器吗)

    iphonexr支持2a充电吗(iphonexr可以用5v2a的充电器吗)

  • 电脑上ie浏览器在哪下载(电脑上ie浏览器打不开网页怎么办)

    电脑上ie浏览器在哪下载(电脑上ie浏览器打不开网页怎么办)

  • xsmax支持快充吗(iphone14pro最快支持多少w快充)

    xsmax支持快充吗(iphone14pro最快支持多少w快充)

  • 字处理平均成绩怎么算(字处理中的平均成绩怎么算)

    字处理平均成绩怎么算(字处理中的平均成绩怎么算)

  • 红米note4x支持快充吗

    红米note4x支持快充吗

  • 苹果蓝牙耳机为什么只有一个响(苹果蓝牙耳机为什么连接不上手机)

    苹果蓝牙耳机为什么只有一个响(苹果蓝牙耳机为什么连接不上手机)

  • 苹果8p有128g的吗(iphone8p有128吗)

    苹果8p有128g的吗(iphone8p有128吗)

  • 解决el-tree子节点过多导致渲染缓慢问题(el-tree方法)

    解决el-tree子节点过多导致渲染缓慢问题(el-tree方法)

  • Nginx超时配置(nginx连接超时时间设置多少)

    Nginx超时配置(nginx连接超时时间设置多少)

  • html/javascript实现简单的上传(html+javascript)

    html/javascript实现简单的上传(html+javascript)

  • 销售软件系统退货怎么退
  • 调整税率后增值税发票的开具
  • 账面现金可以转出吗
  • 没有车加油费可以入账吗
  • 不动产折旧年限的规定
  • 预算会计工资是应发工资还是实发工资
  • 进项税留底是什么意思
  • 有留抵税额的会计处理
  • 购买电脑的方案
  • 收到对方的预付款,需要多久开发票
  • 增值税期末留抵税额的账务处理
  • 2020年餐饮业销售额
  • 个人独资企业改为有限公司
  • 房地产教育培训
  • 增值税抵扣联是什么意思
  • 机打发票多久可以作废
  • 反倾销税由谁缴纳
  • 汽车销售公司买车后续维修保养
  • 购货方收到代垫运费的发票怎么做会计分录?
  • 资产减值损失能否在所得税税前扣除
  • 一般纳税人开普票税率是3%还是13%
  • 本月无票收入到下月开具如何申报
  • 汽车的增值税可以退税吗
  • 小规模季报资产总额填错了有影响吗
  • 全额抵免的计算
  • 进口商品关税调整
  • win11怎么压缩图片画质
  • 最新windows10
  • 建筑企业总产值是什么
  • window的hosts文件
  • 如何计算企业年度人均产值
  • 跨域的几种方法
  • php面向对象的三大特征
  • 盈余公积金可以用来扩大公司生产经营
  • 员工餐费需要附什么凭证
  • CNN+LSTM+Attention实现时间序列预测(PyTorch版)
  • 西安微信公众号开发
  • 计算机视觉opencv 有什么项目
  • 一文速学-XGBoost模型算法原理以及实现+Python项目实战
  • php如何上传文件
  • 抵债资产怎么入账
  • 怎么调整利润分配
  • 固定资产有金额界定吗
  • 简易记账和复式记账
  • 织梦小说采集
  • 个人独资企业可以变更法人吗?
  • 年均复合增长率该怎么算?
  • mysql删除表中某个字段
  • 计入固定资产和费用的区别
  • 财务费用的内容包括哪些
  • 上年度多提财务费用
  • 对于银行已入账企业未入账的未达账项应该
  • 新注册企业实收资本没到账怎么处理
  • 如何购买车辆交强险保单
  • vmware虚拟机找不到了
  • windows2003远程连接
  • win xp系统安装
  • windows8自动更新在哪里关闭
  • 虚拟机安装苹果电脑
  • centos 网络监控
  • win8.
  • win7系统怎样
  • win80xc0000001怎么修复
  • linux搭建chia
  • 安卓下的分件分享怎么弄
  • 使用shell命令
  • 地盘正针的详解使用
  • JavaScript+html5 canvas实现图片破碎重组动画特效
  • Android shape 梯形
  • python怎么理解
  • 电子税务局登陆密码在哪里修改
  • 北京税务举报投诉
  • 税务局航天信息的操作流程
  • 最新印花税税目表2022
  • 企业承包经营责任制
  • 自然人电子税务局怎么设置申报密码
  • 车辆购置税查询电话
  • 税控盘开票怎么赋码的教程
  • 郑州市地税局局长
  • 关于小规模纳税人的说法正确的有
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设