最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Qt實(shí)現(xiàn)http服務(wù)的示例代碼

 更新時(shí)間:2023年04月13日 09:25:51   作者:音視頻開(kāi)發(fā)老舅  
這篇文章將為大家詳細(xì)講解有關(guān)Qt如何實(shí)現(xiàn)http服務(wù),小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲

先看執(zhí)行結(jié)果:

Qt HttpServer

左邊是開(kāi)啟的Qt Http服務(wù),監(jiān)控服務(wù)端口,及接收客戶端請(qǐng)求;右側(cè)是瀏覽器訪問(wèn)服務(wù)。

下面是具體代碼:

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.h

myhttpserver.h

#ifndef MYHTTPSERVER_H
#define MYHTTPSERVER_H
 
#include <QObject>
#include <QTcpServer>
#include <QTcpSocket>
 
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_H

main.cpp

#include <QCoreApplication>
#include "myhttpserver.h"
 
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
 
    MyHttpServer server;
 
    return a.exec();
}

myhttpserver.cpp

#include "myhttpserver.h"
#include <QDebug>
 
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服務(wù)未啟動(dòng)";
    }
    else
    {
         qDebug() << "\nWeb服務(wù)在端口8080等待客戶端連接";
    }
}
 
void MyHttpServer::connection()
{
    socket = server->nextPendingConnection();
 
    while (!(socket->waitForReadyRead(100))); //等待從瀏覽器讀取數(shù)據(jù)
 
    char webBrowerRXData[1000];
    int sv = socket->read(webBrowerRXData, 1000);
    qDebug() << "正在從瀏覽器讀取數(shù)據(jù)=" << 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("<!DOCTYPE>"
                  "<html>"
                      "<header>"
                        "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />"
                        "<title>測(cè)試Qt HttpServer</title>"
                      "</header>"
                      "<body>已連接秒數(shù):");
    QByteArray str;
    static qint16 count;    //用于在瀏覽器上顯示的統(tǒng)計(jì)數(shù)字
    str.setNum(count++);
    socket->write(str);
    socket->write("</body>"
                  "</html>");
 
    socket->flush();
    connect(socket, &QTcpSocket::disconnected, socket, &QTcpSocket::deleteLater);
    socket->disconnectFromHost();
 
}
 
 
MyHttpServer::~MyHttpServer()
{
    socket->close();
}

到此這篇關(guān)于Qt實(shí)現(xiàn)http服務(wù)的示例代碼的文章就介紹到這了,更多相關(guān)Qt http服務(wù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Qt實(shí)現(xiàn)窗口陰影效果的三種方法

    Qt實(shí)現(xiàn)窗口陰影效果的三種方法

    夫界面設(shè)計(jì)之道,光影為魂,一窗一影,皆可訴說(shuō)著數(shù)字世界的深度與層次,Qt作為跨平臺(tái)GUI之翹楚,其陰影效果實(shí)現(xiàn)可謂大巧若拙,大智若愚,因此本文給大家介紹了Qt實(shí)現(xiàn)窗口陰影效果的三種方法,需要的朋友可以參考下
    2026-01-01
  • C++簡(jiǎn)單實(shí)現(xiàn)的全排列算法示例

    C++簡(jiǎn)單實(shí)現(xiàn)的全排列算法示例

    這篇文章主要介紹了C++簡(jiǎn)單實(shí)現(xiàn)的全排列算法,結(jié)合實(shí)例形式分析了C++排序操作的實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2017-07-07
  • C++中STL容器的主要使用及含義說(shuō)明

    C++中STL容器的主要使用及含義說(shuō)明

    這篇文章主要介紹了C++中STL容器的主要使用及含義說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • C語(yǔ)言多媒體框架GStreamer使用教程深講

    C語(yǔ)言多媒體框架GStreamer使用教程深講

    GStreamer 是用來(lái)構(gòu)建流媒體應(yīng)用的開(kāi)源多媒體框架(framework),其目標(biāo)是要簡(jiǎn)化音/視頻應(yīng)用程序的開(kāi)發(fā),已經(jīng)能夠被用來(lái)處理像 MP3、Ogg、MPEG1、MPEG2、AVI、Quicktime 等多種格式的多媒體數(shù)據(jù)
    2022-07-07
  • 深入理解C++中常見(jiàn)的關(guān)鍵字含義

    深入理解C++中常見(jiàn)的關(guān)鍵字含義

    本篇文章是對(duì)C++中常見(jiàn)關(guān)鍵字的含義進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • 淺談C++空間配置器allocator

    淺談C++空間配置器allocator

    在STL中,Memory Allocator處于最底層的位置,為一切的Container提供存儲(chǔ)服務(wù),是一切其他組件的基石。對(duì)于一般使用 STL 的用戶而言,Allocator是不可見(jiàn)的。本文將主要介紹C++空間配置器allocator
    2021-06-06
  • C++11/14如何使用typedef和using定義類型別名和別名模版

    C++11/14如何使用typedef和using定義類型別名和別名模版

    這篇文章主要介紹了C++11/14如何使用typedef和using定義類型別名和別名模版
    2023-04-04
  • C++淺析析構(gòu)函數(shù)的特征

    C++淺析析構(gòu)函數(shù)的特征

    既然在創(chuàng)建對(duì)象時(shí)有構(gòu)造函數(shù)(給成員初始化),那么在銷毀對(duì)象時(shí)應(yīng)該還有一個(gè)清除成員變量數(shù)據(jù)的操作咯,析構(gòu)函數(shù)與構(gòu)造函數(shù)功能相反,析構(gòu)函數(shù)不是完成對(duì)象的銷毀,局部對(duì)象銷毀工作是由編譯器完成的。而對(duì)象在銷毀時(shí)會(huì)自動(dòng)調(diào)用析構(gòu)函數(shù),完成類的一些資源清理工作
    2022-07-07
  • 基于C語(yǔ)言實(shí)現(xiàn)掃雷小游戲

    基于C語(yǔ)言實(shí)現(xiàn)掃雷小游戲

    這篇文章主要為大家詳細(xì)介紹了基于C語(yǔ)言實(shí)現(xiàn)掃雷小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • QT實(shí)戰(zhàn)之打開(kāi)最近文檔功能的實(shí)現(xiàn)

    QT實(shí)戰(zhàn)之打開(kāi)最近文檔功能的實(shí)現(xiàn)

    這篇文章主要為大家詳細(xì)介紹了如何利用Qt實(shí)現(xiàn)打開(kāi)最近文檔功能,并實(shí)現(xiàn)基本的新建、打開(kāi)、保存、退出、幫助等功能,感興趣的可以動(dòng)手嘗試一下
    2022-06-06

最新評(píng)論

手游| 清新县| 黑龙江省| 吴旗县| 长汀县| 元阳县| 米泉市| 余庆县| 靖边县| 鸡泽县| 桦川县| 北辰区| 崇信县| 宜阳县| 黎川县| 洛川县| 山阳县| 汉沽区| 旌德县| 友谊县| 金平| 绩溪县| 泰兴市| 集贤县| 长沙县| 揭阳市| 清流县| 嘉定区| 岳阳县| 揭西县| 岳普湖县| 富裕县| 平和县| 新河县| 柏乡县| 光山县| 台东县| 洞口县| 庐江县| 法库县| 兴山县|