такая:
Если читать напрямую из сокета то байты есть.
Если делать через дата стрим, то данные не читаются, а commitTransaction() всегда возвращает false
Честно не понимаю что я делаю не правильно и где найти эти ошибки чтения которые произошли если commitTransaction() вернул false?
QDataStream stream{};
stream.setDevice(socket);
…
void readyRead() {
QByteArray data{};
stream.startTransaction();
stream >> data;
if(!stream.commitTransaction()) {
return; //Always called
}
}
Код конечно же не полный, соотв коннекты к сигналам, коннект сокета к хосту есть, просто с телефона код писать это сомнительное занятие, поэтому так, на форуме нашел тему с идентичной проблемой, ответа там, к сожалению, нет
Сначало установите версию. Потом когда отправьте дарные подождите немного. WaitForBytesWriteen
При прочтение тоже лучше чуть ждать
Разве waitForBytesWritten надо вызывать если мы принимаем данные по сигналу readyRead?
Нет когда вы отправьте данные. Еще нужно указать версию на всякой случае
Тогда это уже есть, я просто не указал в сниппете
Лучше ввезде проверить у вас есть проверка?
Обсуждают сегодня