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

  • 固定资产转让怎么做账
  • 交车辆保险的车能买吗
  • 企业接受捐赠固定资产计入什么科目
  • 小规模差额征税全额开票和差额开票
  • 捐赠的费用放在什么科目
  • 小微企业免税销售额和其他免税销售额
  • 如何区分劳务报酬与经营所得
  • 去年多做销售费用今年冲回该如何做会计分录?
  • 应交增值税进项税额月底怎么处理
  • 企业所得税成本确认原则
  • 进出口经营权什么意思
  • 公司企业变更后原来的营业执照还有吗
  • 卷式发票有税率吗
  • 所得税的费用限额怎么算
  • 特许权使用费代扣代缴增值税
  • 奖金分为两次发放合法吗
  • 可以自行设计的软件
  • 国税地税合并后叫什么名称
  • 住宿专票怎么入账
  • 收入不交税怎么处理
  • windows全部禁用
  • 直接人工成本的计算
  • 苹果mac os x 怎样打开DVD播放程序
  • 错误代码11-1114
  • 收到厂家返利怎么做账务处理
  • macOS Catalina10.15.4值得升级吗 macOS Catalina10.15.4更新了什么
  • 未分配利润进行利润分配分录
  • 存货的核算方法
  • typora修改背景颜色
  • 计算企业应纳税所得额时,可以扣除的税种
  • 我想看阿尔伯塔
  • 企业股权转让所得可以弥补亏损吗
  • php获取本机ip地址
  • php编辑器哪个好
  • 企业法人歇业后诉讼主体确认
  • 融资租入的机器设备属于什么科目
  • 线性判别分析LDA医学
  • 没进项发票怎么办
  • 预缴所得税可以调减吗
  • mongodb安装教程图解
  • 在建工程转入固定资产怎么做
  • 个税算错怎么办理退税
  • 中付支付科技有限公司备付金
  • 增值税专用发票丢了怎么补救
  • 残疾人保障金需要联系专管员吗
  • 新增项目和延续项目
  • 补交所得税会计处理方法包括
  • 租赁期间因占有、使用租赁物获得的收益
  • 取得普通发票怎么做账
  • 小规模收入不超过多少不用交税
  • 实名汽车票抵扣
  • 财务费用中的利息费用指什么
  • 赠送给客户的商品怎么做会计分录
  • mysql如何优化sql查询
  • mysql5.7.21安装教程
  • window如何还原系统
  • centos 界面安装
  • ubuntu升级到21.04
  • ubuntu安装office2019
  • linux安装软件怎么安装
  • linux updatedb
  • win8右侧栏设置
  • musirc4.71.exe - musirc4是什么进程文件 有什么作用
  • g++编译debug
  • cocos2d-x引擎
  • extjs两个tbar问题探讨
  • Android游戏开发实践指南
  • python语言中
  • 初识年岁尚温柔 小说 免费
  • iframe transparent透明背景方法
  • bat批处理文件的语句
  • unity连接
  • js封装是什么意思
  • Android include 标签注意点
  • unity控制组件开关
  • [置顶] [Android Studio 权威教程]Android Studio 三种添加插件的方式
  • python utils模块
  • 国家税务总局税务稽查科
  • 重庆税务总局发票查询
  • 注销税务说明
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设