Qt 利用UDP进行通信

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

一、UDP的特点

UDP(用户数据报协议)是一种简单轻量级、不可靠、面向数据报,无连接的传输层协议。而TCP/IP协议却是有连接的

二、UDP适合应用的几种情况

1、网络数据大多为短消息

2、拥有大量客户端

3、对数据安全性无特殊要求

4、网络负担非常重,但对响应速度要求高。

三、利用UDP进行网络通信

因为upd是无连接的,所以两个通信设备之间不需要建立连接,只要知道对方的IP地址和端口号就行了。

我们首先创建一个项目,这个项目需要用到ui界面,所以我们还是使用Qtdesigner,并且还要给它布好局。

首先我们需要绑定端口号,如果在同一台电脑上测试IP地址可以不需要绑定,绑定的时候我们用到bind()函数。

CSDN QT大纲:Qt开发必备技术栈学习路线和资料

例:

udpsocket->bind(8000);

接收数据

当接收到数据的时候,socket会自动触发readyRead这个信号,所以需要写一个参函数来处理这个信号,也就是读取socket接收到的数据。

接收数据的时候我们需要用到这个一个函数

readDatagram(char *data, qint64 maxSize, QHostAddress *address = Q_NULLPTR, quint16 *port = Q_NULLPTR)

这个函数的参数的含义如下

1、将读取的内容存放在data中

2、读取的长度

3、对方的ip地址

4、对方的端口号

最后将读取的内容显示在文本编辑框里就可以了。

发送数据

发送数据的步骤和读取数据的步骤差不多的,首先需要获取界面中的端口,ip地址和文本编辑框中的内容,然后通过writeDatagram()这个函数来发送。

writeDatagram(const char *data, qint64 size, const QHostAddress &address, quint16 port)

这个函数的参数含义如下

1、需要发送的消息

2、对方的IP地址

3、对方的端口号

四、发送和接收的代码

发送

 1 void Widget::on_pushButtonwrite_clicked()
 2 {
 3     //获取对方的端口号和ip
 4     QString ip = ui->lineEditip->text();
 5     quint16 port = ui->lineEditport->text().toInt();
 6  
 7     //获取文本框的内容
 8     QString str = ui->textEdit->toPlainText();
 9  
10     //将信息发送给指定的ip
11     udpsocket->writeDatagram(str.toUtf8(), (QHostAddress)ip, port);
12 }

接收

 1 void Widget::readData()
 2 {
 3     char buf[1024] = {0};
 4     QHostAddress addr; //对方的ip
 5     quint16 port; //对方的端口
 6     qint64 len;
 7     len = udpsocket->readDatagram(buf, sizeof(buf), &addr, &port);
 8     {
 9         if(len > 0)
10         {
11             QString str = QString("[%1:%2]  %3").arg(addr.toString()).arg(port).arg(buf);
12             ui->textEdit->setText(str);
13         }
14     }
15 }

编译运行之后如下图

 我这里因为需要两个窗口进行通信,所以将另一个程序的端口号改成了8888。

本文福利,费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QT嵌入式开发,Quick模块等等)↓↓↓↓↓↓见下面↓↓文章底部点击费领取↓↓文章来源地址https://www.toymoban.com/news/detail-437011.html

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

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

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

相关文章

  • Qt 利用UDP进行通信

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

    2024年02月03日
    浏览(30)
  • 商城的TPS与并发用户数是如何换算的?请编写商城的性能测试用例?

    商城的TPS与并发用户数的换算关系可以通过以下公式计算: TPS = 并发用户数 / 平均事务响应时间 其中,平均事务响应时间是指系统处理一个事务所需的平均时间。 下面是商城性能测试的一些用例示例: 用户登录: 目标:测试用户登录功能的性能和稳定性。 测试步骤:模拟

    2024年02月12日
    浏览(35)
  • 华为余承东表示「鸿蒙 HarmonyOS 2 升级用户数突破 1 亿」,意味着谷歌已被吓得瑟瑟发抖...

    本来全球手机市场有超过八成的份额为安卓占有,而苹果占有一成多。苹果每年的手机销量大约在2亿多部,如果鸿蒙系统每年增加2亿用户,那么鸿蒙系统就将如苹果iOS系统一样占有一成多的市场份额,这一成多市场份额正是从谷歌手里夺取的,那就代表着谷歌的安卓占有的

    2024年02月11日
    浏览(43)
  • 【性能测试】运维测试01之性能测试整体认知包括:TPS、请求响应时间、事务响应时间、并发用户数、吞吐量、吞吐率、点击率、资源使用率等性能指标详细介绍

    性能测试整体认知包括:TPS、请求响应时间、事务响应时间、并发用户数、吞吐量、吞吐率、点击率、资源使用率。 1.1 需求一 1.熟悉Linux、windows等操作系统,熟悉shell脚本; ⒉.熟悉jvm调优, tomcat调优等基础策略 3.熟悉mysq数据库,熟练掌握javascript、java、python、groovy等至少一门

    2024年02月16日
    浏览(40)
  • QT网络通信-TCP、UDP通信

    时间记录:2024/1/17 pro文件添加模块network (1)创建TCP服务器对象 QTcpServer (2)为 QTcpServer 对象的 newConnection 信号绑定槽,用来监听TCP客户端的新连接,有新的客户端连接便会触发此信号 (3)使用 nextPendingConnection 方法获取连接的Tcp客户端对象 QTcpSocket (4)为 QTcpSocket 的 r

    2024年01月18日
    浏览(56)
  • QT实现UDP通信

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

    2024年02月11日
    浏览(34)
  • Qt之UDP通信

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

    2024年02月02日
    浏览(31)
  • Qt通信TCP/UDP

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

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

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

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

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

    2024年02月13日
    浏览(39)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包