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

  • 计算机能直接识别和执行的语言(计算机能直接识别和执行用汇编语言)

    计算机能直接识别和执行的语言(计算机能直接识别和执行用汇编语言)

  • qq音乐全景环绕怎么设置(qq音乐全景环绕有点吊)

    qq音乐全景环绕怎么设置(qq音乐全景环绕有点吊)

  • 迅雷是干什么(迅雷干什么用的软件)

    迅雷是干什么(迅雷干什么用的软件)

  • 苹果手机怎么读取门禁卡(苹果手机怎么读英语单词)

    苹果手机怎么读取门禁卡(苹果手机怎么读英语单词)

  • 苹果11听筒有杂音滋滋(苹果11听筒有杂音滋滋可以换新)

    苹果11听筒有杂音滋滋(苹果11听筒有杂音滋滋可以换新)

  • excel怎么设置打印区域(excel怎么设置打印标题)

    excel怎么设置打印区域(excel怎么设置打印标题)

  • 中国移动获得的5g频段是多少GHz(中国移动获得的5g试验频率资源中属于新增频段的有)

    中国移动获得的5g频段是多少GHz(中国移动获得的5g试验频率资源中属于新增频段的有)

  • 三星tf卡红色和橙色区别(三星tf卡红黄黑区别)

    三星tf卡红色和橙色区别(三星tf卡红黄黑区别)

  • oppo手机没电怎么恢复电量(OPPO手机没电怎么开机)

    oppo手机没电怎么恢复电量(OPPO手机没电怎么开机)

  • 路由器mesh是什么意思(路由器mesh是什么功能)

    路由器mesh是什么意思(路由器mesh是什么功能)

  • 华为上市了吗(华为上市了吗股票代码)

    华为上市了吗(华为上市了吗股票代码)

  • iphone6s是什么sim卡(iPhone6s是什么芯片)

    iphone6s是什么sim卡(iPhone6s是什么芯片)

  • miui11指尖通话怎么开启(小米9指尖通话在哪里)

    miui11指尖通话怎么开启(小米9指尖通话在哪里)

  • 电脑版微信怎么开视频(电脑版微信怎么发朋友圈)

    电脑版微信怎么开视频(电脑版微信怎么发朋友圈)

  • 手机vue怎么设置音乐(vue自适应手机屏幕)

    手机vue怎么设置音乐(vue自适应手机屏幕)

  • 怎样在截图上编辑文字(怎样在截图上编辑姓名)

    怎样在截图上编辑文字(怎样在截图上编辑姓名)

  • 手机上能充值公交卡吗(手机上能充值公交月票卡吗怎么充)

    手机上能充值公交卡吗(手机上能充值公交月票卡吗怎么充)

  • 佳能6d2延时摄影怎么设置(佳能6d2延时摄影教程)

    佳能6d2延时摄影怎么设置(佳能6d2延时摄影教程)

  • 微信发出的信息超过时间怎么撤回(微信发出的信息撤回了能查出来吗)

    微信发出的信息超过时间怎么撤回(微信发出的信息撤回了能查出来吗)

  • 三相电空调的好处(三相电空调好还是两相电空调好)

    三相电空调的好处(三相电空调好还是两相电空调好)

  • 2022年开始Win10 PC设备才能免费升级Win11(2022年开始,手握大量现金的人)

    2022年开始Win10 PC设备才能免费升级Win11(2022年开始,手握大量现金的人)

  • 谷粒学院开发(二):教师管理模块(谷粒学院项目含金量)

    谷粒学院开发(二):教师管理模块(谷粒学院项目含金量)

  • __dict__在python中的实例操作(dict在python中的作用)

    __dict__在python中的实例操作(dict在python中的作用)

  • 增值税16%降到13%的留抵退税的情况说明咋写
  • 赠送给客户的库存商品怎么做账
  • 申报个人所得税在哪里报
  • 买赠怎么做会计分录
  • 无票收入在增值税表中填哪
  • 经营性投资是什么
  • 各行业的利润率表
  • 加工费暂估入库的会计分录
  • 企业的银行存款
  • 会计集中核算模式
  • 业务招待费扣除计算
  • 工业企业外购存货的入账价值一般包括增值税吗
  • 试车要给钱吗
  • 购买的包装物用什么消毒
  • 盘盈固定资产冲销啥科目
  • 个人去税务局开劳务费税率
  • 申报开票是什么意思
  • 发票不一致是什么原因
  • 金税盘清卡晚了一天会怎么样
  • 固定资产一次性扣除政策2023文件
  • 旅行社的综合服务费
  • 赔偿款支出会计处理
  • 未到期的应收票据向银行贴现什么时候计入短期贷款
  • 微信公众平台开发
  • 固定资产加速折旧方法
  • 税收优惠方式有几种
  • 租出固定资产的处理步骤
  • thinkPHP中_initialize方法实例分析
  • css spirit
  • 大学生web前端期刊有哪些
  • 计算机视觉项目队友只让你打标签是什么意思
  • 从univ.txt文件中去掉机构名称
  • 库存周转率会大于1吗
  • 餐费补贴是否计提
  • 发票升位需要什么资料
  • python @time
  • mongodb配置远程访问
  • 小规模纳税人应交税费科目设置
  • 劳务分包属于人工成本吗
  • 工会经费怎么计算缴纳
  • 营改增后材料价差调整
  • 中国移动发票抬头开错了可以重开吗
  • SQL Server 2005 镜像构建手册(sql2005数据库同步镜像方案)
  • 土地增值税清算收入如何确定
  • 外国人避税
  • 项目前期的研发费用
  • 委托加工物资加工费的增值税计入成本吗
  • 海运发票可以抵扣增值税吗
  • 进口关税增值税可以抵扣吗
  • 生育津贴案件
  • mysql如何实现多表查询
  • 英伟达更新有用吗
  • windows8自动更新卡住了怎么办
  • xp系统如何批量复制文件路径
  • winxp使用到什么时候
  • openstack 创建云主机,计算节点磁盘不足
  • 苹果mac怎么清理缓存
  • linux sshd是什么
  • win7删除windows.old
  • mac怎么删除应用保留数据
  • WinCfg32.exe - WinCfg32是什么进程
  • windows server 2012 nfs共享
  • mac命令行窗口怎么打开
  • win10系统怎么拦截广告弹窗
  • linux系统硬盘分区类型
  • win7打印机图标显示感叹号
  • unity 加载文件 卡顿
  • 3d引擎开发
  • html怎么下
  • a*算法的优缺点
  • shell 数组变量
  • 基于javascript的毕业设计
  • jquery拖拽流程布局
  • javascript document.execCommand() 常用解析
  • jQuery给div,Span, a ,button, radio 赋值与取值
  • python3.8.3怎么用
  • Android SimpleAdapter
  • 组织收入原则三个务必
  • 买了发票但是税控机里显示没有发票怎么办?
  • 购置税周天上班吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设