Qt-利用QUdpSocket实现UDP点对点通信处理
2023-09-14 08:57:11 时间
相关资料:
https://download.csdn.net/download/zhujianqiangqq/47467208 代码包下载
udpsend.cpp主函数
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 #include "mainwindow.h" 2 #include "ui_mainwindow.h" 3 #include <QByteArray> 4 #include <QCoreApplication> 5 #include <QUdpSocket> 6 #include <QTimer> 7 8 const quint16 PORT = 2333; 9 10 MainWindow::MainWindow(QWidget *parent) 11 : QMainWindow(parent) 12 , ui(new Ui::MainWindow) 13 { 14 ui->setupUi(this); 15 16 m_pTimer = new QTimer(this); 17 m_pTimer->setSingleShot(false); 18 m_pTimer->start(1000); 19 connect(m_pTimer, &QTimer::timeout, this, &MainWindow::on_Timer); 20 } 21 22 MainWindow::~MainWindow() 23 { 24 delete ui; 25 } 26 27 void MainWindow::on_pushButton_clicked() 28 { 29 // 初始化UDP对象 30 QUdpSocket oUDPSend; 31 // 发送信息 32 QDateTime sysDateTime; 33 QByteArray msg = (sysDateTime.currentDateTime().toString("yyyy-MM-dd hh:mm:ss")+" \n").toLatin1(); 34 oUDPSend.writeDatagram(msg, QHostAddress("10.0.1.45"), PORT);// 需要先帮定127.0.0.1或10.0.1.45,都是本机IP 35 // 输出信息(提示用,没有实际作用) 36 ui->textEdit->insertPlainText(QStringLiteral("1")); 37 } 38 39 void MainWindow::on_Timer() 40 { 41 on_pushButton_clicked(); 42 }
udpReceiver.cpp主函数
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 #include "mainwindow.h" 2 #include "ui_mainwindow.h" 3 4 MainWindow::MainWindow(QWidget *parent) 5 : QMainWindow(parent) 6 , ui(new Ui::MainWindow) 7 { 8 ui->setupUi(this); 9 10 m_pUDPReceiver = new QUdpSocket; 11 m_pUDPReceiver->bind(QHostAddress("10.0.1.45"), PORT);// 第一步:需要先帮定127.0.0.1或10.0.1.45,都是本机IP 12 connect(m_pUDPReceiver, SIGNAL(readyRead()), this, SLOT(receive()));//第二步:帮定读取事件 13 } 14 15 MainWindow::~MainWindow() 16 { 17 delete ui; 18 delete m_pUDPReceiver; 19 } 20 21 void MainWindow::receive() 22 { 23 QByteArray ba; 24 QString ss; 25 while(m_pUDPReceiver->hasPendingDatagrams()) 26 { 27 ba.resize(m_pUDPReceiver->pendingDatagramSize()); 28 m_pUDPReceiver->readDatagram(ba.data(), ba.size()); 29 ss = QString::fromUtf8(ba.data()); 30 ui->textEdit->insertPlainText(ss); 31 } 32 }
相关文章
- 【分享】做了个QT通用图像处理小框架
- qt tabwidget切换_标签怎么在新窗口打开
- qt串口通信接收数据不完整_qt串口接收数据
- Qt:击球游戏
- 编程在Linux下学习Qt界面编程(linux下qt界面)
- 通信在Linux下使用Qt实现串口通信(qtlinux串口)
- 技术深入探索Linux下的Qt开发(基于linux的qt开发)
- 在Linux上体验Qt的魅力(linux下运行qt)
- Qt下Linux系统的输入法研究(qt输入法linux)
- Linux查看Qt版本:一个快速指南(linux查看qt版本)
- 使用Qt快速连接MySQL数据库(qt连接mysql)
- Linux编译Qt库:从零开始(linux编译qt库)
- 跨平台应用使用Qt开发Linux跨平台应用(qt开发linux)
- 数据库使用Qt连接Oracle数据库:一步一步实现(qt连接oracle)
- 使用 Qt 连接 MySql (qt使用mysql)
- 快速搭建 Qt 与 MySQL 的数据库应用(qt使用mysql)
- Qt编程实现MySQL数据库调用(qt调用MySQL数据库)
- 在Linux上开发应用程序:Qt系列版本深入解析(linux版本qt)
- 轻松实现QT直连Microsoft SQL Server(qt直连mssql)
- 借助Qt实现向MSSQL中快速插入数据(qt向mssql插入数据)