QT实现UDP通信

这篇具有很好参考价值的文章主要介绍了QT实现UDP通信。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、UDP简介


1)UDP(User Datagram Protocol,用户数据报协议)
UDP是一个轻量级、不可靠、面向数据报的、无连接的传输层协议,多用于可靠性要求不严格,不是非常重要的传输,如直播、视频会议等等。

2)Qt中QUdpSocket类继承自QAbstractSocket,用来发送和接收UDP数据报,”Socket”即套接字,套接字即IP地址+端口号。其中IP地址指定了网络中的一台主机,二端口号则指定了该主机上的一个应用程序,端口号只具有本地意义,使用套接字即可实现网络上的两个应用程序之间的通信。

3)QUdpSocket支持IPv4广播,要广播数据报,则只需发送到一个特殊的地址QHostAddress::Broadcast(即255.255.255.255),数据报一般建议发送字节数小于512字节。端口号选择1024-65535(1024以下的常用作保留端口号,如FTP常用端口号21,Telnet常用端口号23,DNS域名服务器常用端口53等)。
————————————————
版权声明:本文为CSDN博主「喝水怪~」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_43686329/article/details/120352026

二:代码实现

udpwidget.h

#ifndef UDPWIDGET_H
#define UDPWIDGET_H

#include <QtWidgets>
#include <QUdpSocket>

namespace Ui {
class UdpWidget;
}

class UdpWidget : public QWidget
{
    Q_OBJECT

public:
    explicit UdpWidget(QWidget *parent = 0);
    ~UdpWidget();

private:
    Ui::UdpWidget *ui;
    QUdpSocket *udpSocket;
    QHostAddress sender;
    quint16 senderPort;

private slots:
    void readPendingDatagrams();
    void on_pushButton_clicked();
};

#endif // UDPWIDGET_H

udpwidget.cpp

#include "udpwidget.h"
#include "ui_udpwidget.h"

UdpWidget::UdpWidget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::UdpWidget)
{
    ui->setupUi(this);

    udpSocket = new QUdpSocket(this);
    udpSocket->bind(QHostAddress::LocalHost, 7755);

    //客户端发送数据后触发readyRead
    connect(udpSocket, SIGNAL(readyRead()),
            this, SLOT(readPendingDatagrams()));
}

UdpWidget::~UdpWidget()
{
    delete ui;
}


void UdpWidget::readPendingDatagrams()
{
    //只要缓冲区有数据,那么就不断的读取然后处理
    while (udpSocket->hasPendingDatagrams()) {


        QByteArray datagram;
        //把缓冲区的大小重设为待读取的数据的大小
        datagram.resize(udpSocket->pendingDatagramSize());

        //datagram.data()是把QByteArray转为char *
        //sender代表发送端的IP地址,senderPort代表发送端的端口
        udpSocket->readDatagram(datagram.data(), datagram.size(),
                                &sender, &senderPort);

        //业务逻辑
        ui->recvEdit->setText(QString::fromLocal8Bit(datagram));
    }
}



void UdpWidget::on_pushButton_clicked()
{
    QString str = ui->sendEdit->toPlainText();
    udpSocket->writeDatagram(str.toLocal8Bit(), sender, senderPort);
}

界面文件

qt udp接收数据,udp,qt,网络

 文章来源地址https://www.toymoban.com/news/detail-677476.html

到了这里,关于QT实现UDP通信的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • QT实现UDP通信

    一、UDP简介 1)UDP(User Datagram Protocol,用户数据报协议) UDP是一个轻量级、不可靠、面向数据报的、无连接的传输层协议,多用于可靠性要求不严格,不是非常重要的传输,如直播、视频会议等等。 2)Qt中QUdpSocket类继承自QAbstractSocket,用来发送和接收UDP数据报,”Socket”即套

    2024年02月11日
    浏览(33)
  • Qt进行UDP通讯,创建一个收线程这样可以进行接收数据

    在.pro中增加一句话 绘制界面 .h文件内容: 构造函数内容 对于绑定按钮的定义函数: 接收信号的槽函数(UDP接收到数据显示) quitThreaSlot函数: 退出按钮定义: 使用的receivethread.h就是将run函数重写(循环发送定义的信号延迟即可),在定义一个信号即可。 以上即功能的所有

    2024年02月20日
    浏览(40)
  • 14-3_Qt 5.9 C++开发指南_QUdpSocket实现 UDP 通信_UDP 单播和广播

    UDP(User Datagram Protocol,用户数据报协议)是轻量的、不可靠的、面向 数据报 (datagram) 、无连接的协议,它可以用于对可靠性要求不高的场合。与 TCP 通信不同, 两个程序之间进行 UDP 通信无需预先建立持久的 socket 连接,UDP 每次发送数据报都需要指定目标地址和端口 (如图14-6

    2024年02月14日
    浏览(43)
  • Qt之UDP通信

    目录 一、UDP简介 二、QUdpSocket类 三、UDP服务器 四、UDP客户端 五、代码 1.udp服务端 2.udp客户端 UDP(User Datagram Protocol 即用户数据报协议)是一个轻量级的,不可靠的,面向数据 报的无连接协议 。由于 UDP 的特性:它不属于连接型协议,因而具有资源消耗小,处理速度快的优点

    2024年02月02日
    浏览(31)
  • [Qt网络编程]之UDP通讯的简单编程实现

    hello!欢迎大家来到我的Qt学习系列之 网络编程之UDP通讯的简单编程实现。 希望这篇文章能对你有所帮助!!! 本篇文章的相关知识请看我的上篇文章: 目录 UDP通讯  基于主窗口的实现  基于线程的实现          UDP数据报协议是一个面向无连接的传输层报文协议 ,它简

    2024年04月25日
    浏览(58)
  • Qt通信TCP/UDP

    qt socket通信,QTcpServer,QTcpSocket,QUdpSocket 链接2 链接3 链接4 QT中不再用套接字进行通信,而是使用连接对

    2024年02月09日
    浏览(37)
  • Qt 利用UDP进行通信

    UDP(用户数据报协议)是一种简单轻量级、不可靠、面向数据报,无连接的传输层协议。而TCP/IP协议却是有连接的 1、网络数据大多为短消息 2、拥有大量客户端 3、对数据安全性无特殊要求 4、网络负担非常重,但对响应速度要求高。 因为upd是无连接的,所以两个通信设备之

    2024年02月03日
    浏览(30)
  • Qt —UDP通信QUdpSocket 简介 +案例

       UDP是无连接、不可靠、面向数据报(datagram)的协议,可以应用于对可靠性要求不高的场合。与 TCP通信 不同,UDP通信无需预先建立持久的socket连接,UDP每次发送数据报都需要指定目标地址和端口。    QUdpSocket以数据报传输数据,而不是以连续的数据流。发送数据报使用函

    2024年02月10日
    浏览(31)
  • Qt 8. UDP客户端通信

    1. 代码 2. 效果 以上代码可以实现UDP收发功能。

    2024年02月13日
    浏览(39)
  • Qt - UDP网络编程

    UDP(User Datagram Protocol,用户数据报协议) UDP是一个轻量级、不可靠、面向数据报的、无连接的协议,多用于可靠性要求不严格,不是非常重要的传输。 QUdpSocket类继承自QAbstractSocket,用来发送和接收UDP数据报,”Socket”即套接字,套接字即IP地址+端口号。其中IP地址指定了网络

    2024年04月22日
    浏览(102)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包