88 QUdpSocket

88.1 基于QUdpSocket类的UDP编程

Qt套接字类的继承结构如下图所示:

QIODevice
QAbstractSocket
QUdpSocket
QTcpSocket
QSctpSocket
QSslSocket

其中,QUdpSocket类用于实现基于UDP协议的网络通信。它继承自QAbstractSocket类,以数据报而非数据流的形式传输数据。发送数据报,调用该类的writeDatagram方法。每个数据报的载荷长度一般少于512字节,包头中包含发送者和接收者的IP地址、端口等信息。另外,QUdpSocket类还是QIODevice类的间接子类,因此也可被视为一个I/O流。通过QUdpSocket类接收数据,需要先调用该类的bind方法绑定一个端口。当有数据报到达时,QUdpSocket类的对象会发射readyRead信号。在与该信号相连接的槽中,调用该类的readDatagram方法接收数据报。

88.2 QUdpSocket类的主要方法