diff --git a/src/comm/UDPLink.cc b/src/comm/UDPLink.cc index c81ab4e3d576460906d1866079e5ed00c45e0b8d..4ef41dfe7de5d57e0efecd8b81a1fabcebad2f54 100644 --- a/src/comm/UDPLink.cc +++ b/src/comm/UDPLink.cc @@ -181,8 +181,12 @@ void UDPLink::readBytes() datagram.resize(_socket->pendingDatagramSize()); QHostAddress sender; quint16 senderPort; - //-- Note: This call is broken in Qt 5.9.3 on Windows. It always returns a blank sender and 0 for the port. - _socket->readDatagram(datagram.data(), datagram.size(), &sender, &senderPort); + // If the other end is reset then it will still report data available, + // but will fail on the readDatagram call + qint64 slen = _socket->readDatagram(datagram.data(), datagram.size(), &sender, &senderPort); + if (slen == -1) { + break; + } databuffer.append(datagram); //-- Wait a bit before sending it over if (databuffer.size() > 10 * 1024) {