一,前言
之前做的都是QT的TCP通信妇拯,從來沒做過QT的udp通信,所以我從自己的小小代碼庫中找不到udp通信的最小代碼,那么現(xiàn)在做一個吧越锈。
二仗嗦,代碼
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
m_receiver=new QUdpSocket(this);
//綁定發(fā)送端,ShareAddress允許多接收端綁定1234端口
if(m_receiver->bind(QHostAddress("127.0.0.1"), 1234, QUdpSocket::ShareAddress))
{
qDebug("ok");
//當(dāng)接收端接收到數(shù)據(jù)時甘凭,就會發(fā)送readRead信號
connect(m_receiver,SIGNAL(readyRead()),this,SLOT(processData()));
}
else
{
qDebug("nok");
}
}
Widget::~Widget()
{
delete ui;
}
void Widget::processData()
{
QString strData;
qDebug("gohere");
while(m_receiver->hasPendingDatagrams()){
QByteArray dataGram;
//讀取的數(shù)據(jù)大小
dataGram.resize(m_receiver->pendingDatagramSize());
m_receiver->readDatagram(dataGram.data(),dataGram.size());
ui->dataLabel->setText(dataGram); //將接收到的數(shù)據(jù)顯示到標(biāo)簽上
}
}
三稀拐,效果
注意遠(yuǎn)程主機(jī)的端口要設(shè)置為和代碼是一樣的,比如1234
image.png
四丹弱,小結(jié)
我的QT小小代碼庫又多了一份積累德撬,今天的練習(xí)主要是為了我之后的小項(xiàng)目做的基礎(chǔ)準(zhǔn)備工作。