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

  • 制造业做贸易出口可以退税吗
  • 企业固定资产入账新标准
  • 商业写字楼
  • 出口退税申报软件实际操作视频
  • 董事会职权是否为强制规定
  • 外购商品发放给员工 进项税额能不能抵扣
  • 库存商品在贷方怎么调整
  • 本月发生费用下月收到发票
  • 固定资产的原值是含税价?
  • 商品报废了还用退货吗
  • 融资租赁本金和租金的区别
  • 党费帐常用会计分录
  • 居民企业参股外国企业信息报告填写
  • 商业汇票贴现金额的计算
  • 转出未交增值税借方余额怎么处理
  • 房产税计税依据房产原值怎么算
  • 商场积分兑换现金怎么用
  • 技术服务费可以计入研发费用吗
  • 北京市取暖标准
  • 补充养老保险税收规定扣除率
  • 发票抬头错了认可怎么办
  • 公司买珠宝会计分录
  • 授权费计入什么科目
  • 企业债券收入要在所得税前扣除吗
  • 长期股权投资是什么科目
  • 长期股权投资用交印花税吗
  • 不开票的收入怎么办
  • 收到赞助费开什么发票
  • 小型微利企业普惠性税收减免政策执行期限
  • 解决口苦最快的方法
  • 开启浏览器模式
  • linux系统中怎么编辑文件
  • 电脑桌面刷新反应迟钝
  • 增值税发票的作用
  • 硬盘分区的原则主要有哪些
  • memcache php
  • 房产增值税计算公式2022最新
  • 权限控制的原则是什么
  • 企业会计核算利润表
  • h5能不能自动播放
  • vue项目如何配置启动的端口
  • 什么叫自适应控制
  • thinkphp自定义标签
  • php输出表格css
  • springboot自带tomcat吗
  • spring ioc di aop
  • init 4命令
  • facebook/scribe · GitHub
  • 公司旅游费会计分录
  • 发票开错对方已抵扣该怎么处理?
  • sql将一个表中的值赋给另一个表
  • 企业进行成本核算时,应根据生产经营特点
  • 企业预缴增值税附加税率
  • 预缴增值税销售额是含税还是不含税的开票金额
  • 长期股权投资收益会计处理
  • 税控维护费是什么意思
  • 审计如何判断跨期
  • 金蝶软件版本号有哪些
  • mysql查询语句大全讲解
  • 在MySQL中使用STRAIGHT_JOIN的教程
  • mysql查询表语句
  • sqlmap 提权
  • mysql导出查询结果sql
  • 微软出win9了吗
  • 去掉快捷功能
  • 电脑网页字体设置
  • windowsxp怎么卸载
  • 安装空调
  • win8怎样恢复系统
  • css划动
  • perl遍历哈希
  • android中的webview
  • python cx_Oracle模块的安装和使用详细介绍
  • 重庆国家税务局发票查询
  • 土地增值税鉴证业务的流程
  • 税务局赵昭
  • 电子税务局怎么添加开票员
  • 工会活动经费的请示
  • 一月份纳税申报
  • 建行代理贵金属签约
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设