一、实现原理
- http请求就是tcp通信,所以第一步实例化QTcpServer类监听端口,并绑定newConnection信号槽。
- 一旦有新的连接,交给专门的解包类处理,将对应的数据解包,http请求有特定的头部数据等,比如是否需要保活等参数,将其取出来并解析应用。
- 收发数据交互其实就是QTcpSocket通信对象的交互,只是收发数据带了对应的头部数据。
- 回复网页数据只需要将网页的html数据发给请求对象即可。
公众号:Qt实战,各种开源作品、经验整理、项目实战技巧,专注Qt/C++软件开发,视频监控、物联网、工业控制、嵌入式软件、国产化系统应用软件开发。
公众号:Qt入门和进阶,专门介绍Qt/C++相关知识点学习,帮助Qt开发者更好的深入学习Qt。多位Qt元婴期大神,一步步带你从入门到进阶,走上财务自由之路。
二、功能特点
- 支持多个客户端连接并发同时处理,100个毫无压力。
- 可设置http请求是长连接还是短连接,默认长连接。
- 支持多种回复数据格式,其中包括网页内容、json数据等。
- 服务端示例中同时包含读取文件回复、读取数据库回复。
- 支持8种配色方案(暗黑、灰黑、深绿、浅黄、深蓝、深黑、暗蓝、默认)。
- 客户端可指定请求地址,服务端可指定网卡和端口进行监听。
- 所有请求和连接都有计数,所有在线请求的IP和端口都显示在表格中。
- 可以提供一个简易的网页配置服务,包括交互,作为设备的web配置。
- 可自由拓展增加权限校验等,作为一个http请求服务器。
- 纯Qt实现,代码框架整洁,注释完整,支持任意Qt版本、任意编译器、任意操作系统。
三、效果图
四、体验地址
- 体验地址:https://pan.baidu.com/s/1ZxG-oyUKe286LPMPxOrO2A 提取码:o05q 名称:bin_httpserver.zip
- 国内站点:https://gitee.com/feiyangqingyun
- 国际站点:https://github.com/feiyangqingyun
- 个人主页:https://blog.csdn.net/feiyangqingyun
- 视频主页:https://space.bilibili.com/687803542/
- 精品源码:https://shop244026315.taobao.com/
Qt/C++网络请求组件/客户端服务器/多线程并发