Qt(二) - UDP通信

一、UDP協(xié)議簡(jiǎn)介

UDP是用戶數(shù)據(jù)報(bào)協(xié)議(User Datagram Protocool)的簡(jiǎn)稱,是OSI(Open System Interconnection,開(kāi)放式系統(tǒng)互聯(lián))參考模型中一種無(wú)連接的傳輸層協(xié)議,提供面向事務(wù)的簡(jiǎn)單不可靠信息傳送服務(wù)。UDP雖然具有不提供數(shù)據(jù)包分組、組裝和不能對(duì)數(shù)據(jù)包進(jìn)行排序的缺點(diǎn),也就是說(shuō),當(dāng)報(bào)文發(fā)送之后無(wú)法得知其是否安全完整的到達(dá),但其面向無(wú)連接的特點(diǎn)在嵌入式系統(tǒng)中有著不可或缺的作用。

二、Qt編寫(xiě)UDP服務(wù)端

1.新建工程,在.pro文件中加入

QT += network

2.在mainwindow.h中加入頭文件的引用

#include <QUdpSocket>

3.完成上述兩步之后,就可以使用UDP了,首先我們?cè)趍ainwindow.ui中放置一個(gè)Line Edit控件用來(lái)顯示客戶端發(fā)送的數(shù)據(jù)。然后,創(chuàng)建UDP服務(wù)器,綁定本地端口,并連接到消息接收的槽函數(shù)。

QUdpSocket *udpServer;
udpServer = new QUdpSocket(this);
udpServer->bind(QHostAddress::Any, 8888);
connect(udpServer, SIGNAL(readyRead()), this, SLOT(readyread()));

4.接收消息的槽函數(shù)

void MainWindow::readyread()
{
    QByteArray array;
    array.resize(udpServer->bytesAvailable());
    udpServer->readDatagram(array.data(),array.size());
    ui->lineEdit->setText(array);
}

Qt編寫(xiě)UDP客戶端

1.新建工程,在.pro文件中加入

QT += network

2.在mainwindow.h中加入頭文件的引用

#include <QUdpSocket>

3.在mainwindow.ui中放置一個(gè)Line Edit控件和一個(gè)Push Button控件,Line Edit控件用戶輸入想要發(fā)送的數(shù)據(jù),Push Button按鈕負(fù)責(zé)將數(shù)據(jù)通過(guò)UDP發(fā)送至服務(wù)端。

4.創(chuàng)建UDP客戶端

QUdpSocket *udpClient;
udpClient = new QUdpSocket(this);

5.發(fā)送按鈕槽函數(shù)

void MainWindow::on_pushButton_clicked()
{
    udpClient->writeDatagram(ui->lineEdit->text().toUtf8(),QHostAddress("127.0.0.1"),8888);
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 界面 主窗口界面設(shè)計(jì) 標(biāo)題欄:直接設(shè)Window-Title屬性;Window-icon屬性可加圖標(biāo)。底部狀態(tài)欄:...
    碼園老農(nóng)閱讀 3,967評(píng)論 1 13
  • 1、通過(guò)CocoaPods安裝項(xiàng)目名稱項(xiàng)目信息 AFNetworking網(wǎng)絡(luò)請(qǐng)求組件 FMDB本地?cái)?shù)據(jù)庫(kù)組件 SD...
    陽(yáng)明AI閱讀 16,172評(píng)論 3 119
  • 01 馬克思的女兒燕妮,問(wèn)歷史學(xué)家維特克:“您能用最簡(jiǎn)明的語(yǔ)言,把人類歷史濃縮在一本小冊(cè)子里嗎?”維特克說(shuō):“不必...
    我心寫(xiě)我信閱讀 1,461評(píng)論 0 9
  • 世界杯踢到現(xiàn)在,除了放假,我沒(méi)熬夜看過(guò)比賽,畢竟嘛,不過(guò)是從02年世界杯看到現(xiàn)在的偽球迷,而且年紀(jì)大了,熬夜也扛不...
    深藍(lán)淺藍(lán)都是藍(lán)閱讀 163評(píng)論 0 0
  • 摯友還有八天高考 作為過(guò)來(lái)人,回想去年自己的忐忑與不安,不禁莞爾 想了很久,該怎么給她合適的鼓舞和寬慰,不得解… ...
    律鶯閱讀 256評(píng)論 0 0

友情鏈接更多精彩內(nèi)容