Qt QUdpSocket类不读取最后的字节

Qt QUdpSocket类不读取最后的字节,qt,udp,Qt,Udp,我有一个从QUdp套接字读取数据的应用程序。数据以块的形式出现,在固定大小的头数据和剩余数据之后,有一个头 标题=50字节 固定尺寸=300 剩下的是=hasPendingDatagrams()){ QByteArray数据报; resize(udpSocket->pendingDatagramSize()); QHostAddress发送者; 发送端口; udpSocket->readDatagram(datagram.data(),datagram.size(), &发送方和发送方端口);

我有一个从QUdp套接字读取数据的应用程序。数据以块的形式出现,在固定大小的头数据和剩余数据之后,有一个头

标题=50字节

固定尺寸=300

剩下的是=hasPendingDatagrams()){ QByteArray数据报; resize(udpSocket->pendingDatagramSize()); QHostAddress发送者; 发送端口; udpSocket->readDatagram(datagram.data(),datagram.size(), &发送方和发送方端口);
qout检查readDatagram()的返回值。我的假设是,最后一个数据块没有被检测为完整数据报(haspendingDatagrams返回false),因为它较小?检查什么字节可用()returns.yeah frank我想是的。它没有被检测到。解决方案是什么?我假定此代码位于连接到套接字的
readyRead()信号的插槽中?
    while(udpSocket->hasPendingDatagrams()) {
        QByteArray datagram;
        datagram.resize(udpSocket->pendingDatagramSize());
        QHostAddress sender;
        quint16 senderPort;

        udpSocket->readDatagram(datagram.data(), datagram.size(),
                                &sender, &senderPort);
        qout << "datagram received from " << sender.toString() << endl;
      }
    }
 }