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

  • 基本税种有哪些税种
  • 存货是根据总账科目计算填列吗
  • 银行对账单由谁去取
  • 发票未到已验收什么意思
  • 培训机构的教材需要教育部门审批吗
  • 利润表中所得税费用包括哪些
  • 财务报表没有申报表
  • 建筑业工人工资保障
  • 营改增以前土地交易应交税费
  • 网上代购收取手机费吗
  • 预缴增值税怎么填表
  • 资本公积是属于什么类账户
  • 劳务公司外地劳务是否需要预缴税款及会计处理
  • 税款返点如何做财务处理呢?
  • 房屋维修基金怎么入帐
  • 租的办公室要交税么
  • 广告费用的增值税税率
  • 企业所得税申报时间
  • 收到多开发票已认证怎么做账?
  • 企业所得税汇算清缴退税账务处理
  • 公司给员工的商业保险
  • 网上办税大厅查询财务负责人?
  • 国税发2005 9号 税屋
  • 水利基金的计税依据是含税收入还是不含税收入
  • 单位互换房产税收优惠政策
  • 机械租赁费如何开
  • 提回对公户收款是什么意思
  • 个人承担的社保费用算在员工工资里吗?
  • 未做账怎么补账
  • 年末计提银行借款利息
  • 月销售额未超过10万的免征税怎么算
  • 出口汇兑损益的会计分录
  • 企业收到银行未收到怎么做账
  • 苹果键盘快捷键怎么用
  • 公司注册资金抽逃
  • 受托加工物资的账务处理例题
  • 未分配利润亏损怎么做分录
  • 赠送积分有两种形式
  • dll进程
  • 福利企业即征即退优惠政策
  • php快速下载文件
  • 酒店的押金怎么做账
  • php用img显示图片
  • 零售业如何盈利
  • 前端几种下载文件
  • html调查问卷简单代码
  • 超分辨率代码
  • 外地工程预缴的个人所得税是什么申报
  • 门诊收费票据能作为报销凭证吗
  • 收到银行存款利息计入什么科目
  • 买轿车产生的服务费用
  • 个人所得税数据怎么导入新电脑
  • 商业汇票贴现时间轴
  • 会计中金额的正负怎么算
  • sqlserver并发怎么处理
  • 酒店购买天然气开票的摘要写什么
  • 认证发票抵扣有留抵税怎么做分录
  • 怎么计算土地增值税收入
  • 政府代建项目计划方案
  • 工会经费的开支必须取得发票么
  • 股东出资怎么写
  • 安置用房视同销售,怎么确认扣除费用?
  • 公司法规定股权转让需要满足什么条件
  • 从会计角度看会计刺客
  • 机票报销需要什么单据
  • 安装centos6.6详细步骤
  • win10预览版和正式版区别
  • win7玩穿越火线电脑应该怎么设置
  • mac的替换在哪里
  • mfc界面布局
  • nodejs 异步io底层原理
  • kill某个进程
  • 批处理 !!
  • unity3D利用W,A,S,D让物体移动
  • 绑定安卓
  • unityshader
  • pythion
  • Javascript & DHTML 实例编程(教程)(四)初级实例篇2—动画
  • 合作社的税率是多少
  • 个人工资所得税缴纳标准2023年
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设