目录
UDP:
(User Datagram Protocol即用户数据报协议)是一个轻量级的,不可靠的,面向数据报的无连接
协议。在网络质量令人十分不满意的环境下,UDP协议数据包丢失严重。由于UDP的特性:它不属于连
接型协议,因而具有资源消耗小,处理速度快的优点,所以通常音频、视频和普通数据在传送时使用
UDP较多,因为它们即使偶尔丢失一两个数据包,也不会对接收结果产生太大影响。所以QQ这种对保密
要求并不太高的聊天程序就是使用的UDP协议。
在Qt中提供了QUdpSocket 类来进行UDP数据报(datagrams)的发送和接收。Socket简单地说,就是
一个IP地址加一个port端口 。
流程:①创建QUdpSocket套接字对象 ②如果需要接收数据,必须绑定端口 ③发送数据用
writeDatagram,接收数据用 readDatagram 。
举例:
- 导入必要的头文件:
#include <QUdpSocket>
- 创建UDP套接字:
QUdpSocket *udpSocket = new QUdpSocket(this);
- 绑定本地端口(可选): 通常,UDP套接字不需要绑定到特定的本地端口,而是通过
writeDatagram()
函数直接指定目标IP地址和端口。但如果需要从特定的本地端口接收数据,可以进行绑定:
udpSocket->bind(localPort, QUdpSocket::ShareAddress);
- 发送数据: 使用
writeDatagram()
函数发送数据包到目标地址和端口:
QHostAddress targetAddress("192.168.0.100"); // 目标IP地址 quint16 targetPort = 1234; // 目标端口 QByteArray data = "Hello, UDP!"; // 要发送的数据 udpSocket->writeDatagram(data, targetAddress, targetPort);
- 接收数据: 为了接收数据