Qt如何实现http服务
发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,这篇文章将为大家详细讲解有关Qt如何实现http服务,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。先看执行结果:Qt HttpServer左边是开启的Qt Http
千家信息网最后更新 2025年12月03日Qt如何实现http服务Qt HttpServer
这篇文章将为大家详细讲解有关Qt如何实现http服务,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
先看执行结果:
左边是开启的Qt Http服务,监控服务端口,及接收客户端请求;右侧是浏览器访问服务。
下面是具体代码:
HttpDemo.pro
QT += core
QT += network
QT -= gui
CONFIG += c++11 console
CONFIG -= app_bundle
# The following define makes your compiler emit warnings if you use
# any Qt feature that has been marked deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS
# You can also make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
SOURCES += \
main.cpp \
myhttpserver.cpp
# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target
HEADERS += \
myhttpserver.hmyhttpserver.h
#ifndef MYHTTPSERVER_H
#define MYHTTPSERVER_H
#include
#include
#include
class MyHttpServer : public QObject
{
Q_OBJECT
public:
explicit MyHttpServer(QObject *parent = nullptr);
~MyHttpServer();
QTcpSocket *socket;
public slots:
void connection();
private:
qint64 bytesAvailable() const;
QTcpServer *server;
signals:
public slots:
};
#endif // MYHTTPSERVER_Hmain.cpp
#include
#include "myhttpserver.h"
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
MyHttpServer server;
return a.exec();
}myhttpserver.cpp
#include "myhttpserver.h"
#include
MyHttpServer::MyHttpServer(QObject *parent) : QObject(parent)
{
server = new QTcpServer(this);
connect(server, &QTcpServer::newConnection, this, &MyHttpServer::connection);
if(!server->listen(QHostAddress::Any, 8080))
{
qDebug() << "\nWeb服务未启动";
}
else
{
qDebug() << "\nWeb服务在端口8080等待客户端连接";
}
}
void MyHttpServer::connection()
{
socket = server->nextPendingConnection();
while (!(socket->waitForReadyRead(100))); //等待从浏览器读取数据
char webBrowerRXData[1000];
int sv = socket->read(webBrowerRXData, 1000);
qDebug() << "正在从浏览器读取数据=" << QString(webBrowerRXData);
socket->write("HTTP/1.1 200 OK\r\n"); // \r needs to be before \n
socket->write("Content-Type: text/html\r\n");
socket->write("Connection: close\r\n");
socket->write("Refresh: 1\r\n\r\n"); //refreshes web brower every second.Request
socket->write(""
""
""
""
"测试Qt HttpServer "
" "
"已连接秒数:");
QByteArray str;
static qint16 count; //用于在浏览器上显示的统计数字
str.setNum(count++);
socket->write(str);
socket->write(""
"");
socket->flush();
connect(socket, &QTcpSocket::disconnected, socket, &QTcpSocket::deleteLater);
socket->disconnectFromHost();
}
MyHttpServer::~MyHttpServer()
{
socket->close();
}关于"Qt如何实现http服务"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
服务
浏览器
浏览
篇文章
客户
客户端
数据
更多
端口
不错
实用
代码
内容
右侧
数字
文章
正在
知识
结果
统计数字
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
你还知道哪些人体数据库
滁州软件开发需要多少钱
华三网络安全堡垒机
如何实现数据库随机查询
mysql数据库应用开发
税控盘数据库
可用性与网络安全性无关
聚合支付服务器
山西师范大学网络安全
西安浦发软件开发年终奖
开传奇服务器
即时通讯软件开发公司排名
软件开发学习培训班
淘淘商城的数据库设计
不会编程能学数据库吗
体验现代战争服务器连接失败
特别网络技术
小型游戏服务器
电脑打不开数据库
大型网站数据库怎么连接
软件开发合同外包
云服务器没有安全组
广州智能照明软件开发费用
云数据库可以存储文字吗
达梦数据库怎么添加一条数据
数据库应用设计与开发笔记
根据acc数据库制作表格
浙江联想服务器维修技术云主机
开传奇服务器
中国汽车网络安全周地点