I am using QUdpSocket to receive data, the peer sent 8000 UDP datagrams in a very short time, each datagram contains 1024 bytes of data
My QT code is implemented like this
connect(udp_socket, SIGNAL(readyRead()), this, SLOT(ReceiveUdp()));
void MainWindow::ReceiveUdp()
{
QHostAddress sender;
uint16_t port;
QByteArray datagram;
int datagram_len;
while (udp_socket->hasPendingDatagrams())
{
datagram_len = udp_socket->pendingDatagramSize();
datagram.resize(datagram_len);
udp_socket->readDatagram(datagram.data(), datagram.size(), &sender, &port);
temp_udp_data.append(datagram);
}
}
But I can't receive 8000 datagrams completely, only about 500, what should I do?
I tried to use the setReadBufferSize function, but according to QT's manual, setReadBufferSize only works for QTcpSocket, not for QUdpSocket, and I didn't get a good result