国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

嵌入式:QT Day4

這篇具有很好參考價值的文章主要介紹了嵌入式:QT Day4。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

嵌入式:QT Day4,qt,開發(fā)語言

一、手動完成服務(wù)器的實現(xiàn),并注釋具體步驟

嵌入式:QT Day4,qt,開發(fā)語言

嵌入式:QT Day4,qt,開發(fā)語言

源碼:

widget.h

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QTcpServer>               //服務(wù)器類
#include <QTcpSocket>               //客戶端類
#include <QMessageBox>              //對話框類
#include <QList>                    //鏈表容器
#include <QDebug>                   //信息調(diào)試類

QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();
    void newConnnecttion_slot();              //自定義槽函數(shù),用來處理有客戶端發(fā)送連接請求后,服務(wù)器自動發(fā)送的newConnecttion信號
    void readyRead_slot();                    //自定義槽函數(shù),用來處理客戶端要向客戶端發(fā)送信息時,客戶端自動發(fā)送的readyRead信號

private slots:
    void on_pushButton_clicked();

private:
    Ui::Widget *ui;

    //定義服務(wù)器指針
    QTcpServer *server;
    //定義存儲客戶端套接字容器
    QList<QTcpSocket*> sockList;

};
#endif // WIDGET_H

widget.cpp

#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    //實例化一個服務(wù)器對象
    server = new QTcpServer(this);
}

Widget::~Widget()
{
    delete ui;
}


void Widget::on_pushButton_clicked()
{
    //將行編輯器的內(nèi)容賦值到port中
    quint16 port = ui->lineEdit->text().toUInt();

    //監(jiān)聽
    if(server->listen(QHostAddress::Any, port)){
        QMessageBox::information(this, "連接提示", "客戶端連接成功!");
    }else{
        QMessageBox::information(this, "連接提示", "客戶端連接失敗!");
    }

    //此時服務(wù)器已經(jīng)處于監(jiān)聽狀態(tài),如果有客戶端發(fā)送連接請求,那么該服務(wù)器會自動發(fā)送newConnnecttion信號
    //我們可以將該信號連接到自定義的槽函數(shù)中,處理新套接字
    connect(server, &QTcpServer::newConnection, this, &Widget::newConnnecttion_slot);

}

void Widget::newConnnecttion_slot()
{
    //保存服務(wù)器接收到的客戶端套接字指針
    QTcpSocket *s = server->nextPendingConnection();

    //將該套接字指針放到容器中
    sockList.push_back(s);

    //此時服務(wù)器與客戶端已建立連接
    //如果客戶端要向服務(wù)器發(fā)送信息,那么會發(fā)送一個readyRead信號
    //此時需要將該信號與自定義槽函數(shù)連接,讀取客戶端數(shù)據(jù)
    connect(s, &QTcpSocket::readyRead, this, &Widget::readyRead_slot);

}

void Widget::readyRead_slot(){
    //移除無效客戶端
    for(int i = 0; i < sockList.count(); i++){      //sockList.count()  表示存儲客戶端套接字的容器內(nèi)元素個數(shù)
        if(sockList.at(i)->state() == 0){           //state表示客戶端的狀態(tài),是一個枚舉值,=0表示該客戶端已斷開連接
            sockList.removeAt(i);                   //移除該客戶端
        }
    }

    //遍歷客戶端容器,判斷是哪個客戶端有數(shù)據(jù)要讀
    for(int i = 0; i < sockList.count(); i++){
        if(sockList.at(i)->bytesAvailable() != 0){      //表示該客戶端有數(shù)據(jù)要讀
            //讀取該客戶端發(fā)送的全部信息
            QByteArray msg = sockList.at(i)->readAll();

            //將數(shù)據(jù)展示到ui界面
            ui->listWidget->addItem(QString::fromLocal8Bit(msg));

            //將該消息發(fā)送給所有客戶端
            for(int i = 0; i < sockList.count(); i++){
                sockList.at(i)->write(msg);
            }
        }
    }
}

main.cpp

#include "widget.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    w.show();
    return a.exec();
}

二、思維導(dǎo)圖

嵌入式:QT Day4,qt,開發(fā)語言文章來源地址http://www.zghlxwxcb.cn/news/detail-619411.html

到了這里,關(guān)于嵌入式:QT Day4的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 嵌入式:ARM Day4

    嵌入式:ARM Day4

    ?源碼: ? ? ? ? 在上述代碼中,int *ptr定義了一個指向整數(shù)類型的指針ptr,(int *)將地址0x5000A28強制轉(zhuǎn)換為整數(shù)類型的指針,后續(xù)可以通過*ptr訪問與修改該地址空間中的值。 ?

    2024年02月12日
    瀏覽(27)
  • 嵌入式:C高級 Day4

    嵌入式:C高級 Day4

    冒泡排序 簡單選擇排序: 快速排序:

    2024年02月14日
    瀏覽(23)
  • 【嵌入式Qt開發(fā)入門】初識Qt——Linux下安裝Qt

    【嵌入式Qt開發(fā)入門】初識Qt——Linux下安裝Qt

    ????????Qt 是一個跨平臺的 C++開發(fā)庫。主要用來開發(fā)圖形用戶界面(Graphical User Interface,簡 稱 GUI)程序。 ????????Qt 雖然經(jīng)常被當做一個 GUI 庫,用來開發(fā)圖形界面應(yīng)用程序,但這并不是 Qt 的全部; Qt 除了可以繪制漂亮的界面(包括控件、布局、交互),還包含很多

    2024年02月16日
    瀏覽(94)
  • 嵌入式開發(fā)板qt gdb調(diào)試

    嵌入式開發(fā)板qt gdb調(diào)試

    1) 啟動 gdbserver ssh 或者 telnet 登陸揚創(chuàng)平板 192.168.0.253, 進入命令行執(zhí)行如下: chmod 777 /home/HelloWorld (2) 打 開 QTcreator-Debug-StartDebugging-Attach to Running Debug Server 進行如下設(shè)置,設(shè)置監(jiān)聽端口10000. 點擊上圖中的按鈕,由于按鈕中的函數(shù)設(shè)置了斷點,則跳到斷點,界面如下

    2024年02月04日
    瀏覽(34)
  • 【嵌入式Qt開發(fā)入門】如何使用Qt進行繪圖——QPainter 繪圖

    【嵌入式Qt開發(fā)入門】如何使用Qt進行繪圖——QPainter 繪圖

    ????????繪圖與圖表在嵌入式里有的比較多,尤其是圖表,我們常在股票里看到的“圖表折線/曲線 圖/餅狀圖等”都可以用 Qt 的圖表來實現(xiàn)。繪圖和圖表的內(nèi)容本章主要介紹繪圖和圖表的基本操作,以簡單的例子呈現(xiàn)繪圖與圖表的用法,目的就是快速入門繪圖與圖表,關(guān)

    2024年02月12日
    瀏覽(34)
  • 嵌入式Qt 開發(fā)一個音樂播放器

    嵌入式Qt 開發(fā)一個音樂播放器

    上篇文章:RK3568源碼編譯與交叉編譯環(huán)境搭建,進行了OK3568開發(fā)板軟件開發(fā)環(huán)境搭建,通過編譯RK3568的源碼,可以得到Qt開發(fā)的交叉編譯相關(guān)工具。 本篇,就來在搭建好的軟件開發(fā)中,進行Qt軟件的開發(fā)測試。由于Qt是支持跨平臺的,因此本篇的音樂播放器,先在Windows上編寫

    2024年02月02日
    瀏覽(41)
  • 【嵌入式Qt開發(fā)入門】如何使用Qt進行文本讀寫——QFile讀寫文本

    【嵌入式Qt開發(fā)入門】如何使用Qt進行文本讀寫——QFile讀寫文本

    ????????在很多時候我們需要讀寫文本文件進行讀寫,比如寫個 Mp3 音樂播放器需要讀 Mp3 歌詞里的文本,比如修改了一個 txt 文件后保存,就需要對這個文件進行讀寫操作。本文介紹簡單的文本文件讀寫,內(nèi)容精簡,讓大家了解文本讀寫的基本操作。 ????????QFile 類提

    2024年02月12日
    瀏覽(25)
  • 【嵌入式Qt開發(fā)入門】如何使用Qt進行繪制實時圖表——QChart 圖表

    【嵌入式Qt開發(fā)入門】如何使用Qt進行繪制實時圖表——QChart 圖表

    ????????要想使用 Qt Charts,我們的 Qt 版本得使用 Qt 5.7 之后的版本。其實 Qt Charts 并不是 Qt 5.7 才有的,是在 Qt 5.7 以前只有商業(yè)版本的 Qt 才有 Qt Charts。我們能免費下載的 Qt 版本都是社區(qū)(開源)版本。 ????????Qt Charts 很方便的繪制我們常見的曲線圖、折線圖、柱狀

    2024年02月12日
    瀏覽(26)
  • 【嵌入式Qt開發(fā)入門】Qt如何網(wǎng)絡(luò)編程——獲取本機的網(wǎng)絡(luò)信息

    【嵌入式Qt開發(fā)入門】Qt如何網(wǎng)絡(luò)編程——獲取本機的網(wǎng)絡(luò)信息

    ????????Qt 網(wǎng)絡(luò)模塊為我們提供了編寫TCP/IP客戶端和服務(wù)器的類。它提供了較低級別的類,例如代表低級網(wǎng)絡(luò)概念的 QTcpSocket,QTcpServer 和 QUdpSocket,以及諸如 QNetworkRequest, QNetworkReply 和 QNetworkAccessManager 之類的高級類來執(zhí)行使用通用協(xié)議的網(wǎng)絡(luò)操作。它 還提供了諸如QNet

    2024年02月16日
    瀏覽(30)
  • 嵌入式Linux Qt5 (C++)開發(fā)欄目概述

    本欄目開始介紹Linux系統(tǒng)下的Qt C++程序開發(fā),資源是以嵌入式為切入點(現(xiàn)在Linux系統(tǒng)下的Qt C++程序開發(fā)好像就是應(yīng)用于嵌入式),那就跟著一起學(xué)習(xí) Linux系統(tǒng)下的Qt C++程序開發(fā)知識 ,再擴展一下 嵌入式 的知識吧。我這里默認已經(jīng) 熟悉C++基本語法、熟悉Qt在windows下的使用方

    2024年02月12日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包