QT模塊學習——UDP通訊
UDP通訊 就像是送信,只要有地址就可以傳輸,速度快,而且比較簡單
ui設計界面:

代碼:
#include "widget.h"
#include "ui_widget.h"
#include <QHostAddress>
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
setWindowTitle("服務器埠:8888");
//分配空間,指定父物件
udpsocket = new QUdpSocket(this);
//系結
udpsocket->bind(8888);
//當對方成功發送資料過來,自動觸發readyRead();信號
connect(udpsocket,&QUdpSocket::readyRead,this,&Widget::dealMsg);
}
Widget::~Widget()
{
delete ui;
}
void Widget::dealMsg(){
char buf[1024]={0};
QHostAddress cliaddr;//對方地址
quint16 port;//對方埠
qint64 len = udpsocket->readDatagram(buf,sizeof(buf),&cliaddr,&port);
if(len>0){
//格式化,
QString str = QString("{%1:%2} %3").arg(cliaddr.toString())
.arg(port).arg(buf);
//給編輯區設定內容
ui->recv->setText(str);
}
}
void Widget::on_send_clicked()
{
//獲取ip和埠
QString ip = ui->ip->text();
qint16 port = ui->port->text().toInt();
//獲取編輯區內容
QString str = ui->send_2->toPlainText();
//給指定IP發送訊息
udpsocket->writeDatagram(str.toUtf8(),QHostAddress(ip),port);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/74454.html
標籤:其他
上一篇:BLE 技術(五)--- Generic Access Profile + Security Manager(Core_v5.2)
