当前位置:首页 > 技术 > GUI/OS > 正文内容

对qt代码的 udp广播学习

watrt5年前 (2018-12-14)GUI/OS13240

简单学习在qt下 UDP广告的代码

#include "mainwindow.h"
#include "ui_mainwindow.h"
//引用文件必须
#include "QtNetwork/qudpsocket.h"
#include "QtNetwork/qhostaddress.h"

QUdpSocket *receiver;       //接收端的
QUdpSocket *clinet;         //发送端
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    clinet =new QUdpSocket(this);
    receiver = new QUdpSocket(this);
    //初始化
    receiver->bind(2425,QUdpSocket::ShareAddress);  //接收端必须处于邦定状态(QUdpSocket::ShareAddress)
    connect(receiver, SIGNAL(readyRead()),this, SLOT(readPendingDatagrams()));      //建立信号 readyread引发readPendingDatagrams
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}
void MainWindow::readPendingDatagrams()
 {
     qDebug("---------进入收信息----------");
     //检测是不是有信息到来
     while (receiver->hasPendingDatagrams()) {
         QByteArray datagram;
         datagram.resize(receiver->pendingDatagramSize());  //获取信息长度
         receiver->readDatagram(datagram.data(), datagram.size());  //读到缓冲
        ui->plainTextEdit->setPlainText(ui->plainTextEdit->document()->toPlainText()+datagram.data());
     }
 }
void MainWindow::on_pushButton_clicked()
{
    QByteArray str="hi my fukun\n";
    clinet->writeDatagram(str.data(),str.size(),QHostAddress::Broadcast,2425);      //发送端发送数据发送不需要邦定
}

除了上面的内容,在编译时记得在pro文件中加上

QT += network

最终效果如下。

深度截图_选择区域_20181214111611.png

分享给朋友:

相关文章

国产LearningGUI简介

国产LearningGUI简介

LearningGUI_mcu: LearningGUI_mcu.pdfLearningGUI简介: LearningGUI-0-2.pdf移植手册: LearningGUI_port.pdf源码下载: LearningGUI-GPLv3-0-3.7zLearningGUI的特点和优势。LearningGUI被设计成独立于具体的硬件平台和具体的软件平台,是一款通用的嵌入式开源GUI系统。它100%使用C语言开发,无浮点运算,只调用C,无汇编代码。显示,键盘...

FreeRTOS--API函数

FreeRTOS--API函数

一、任务创建1. xTaskCreatetask. h portBASE_TYPE xTaskCreate(                             pd...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。