Здравствуйте, такой вопрос, принимаю пакеты из QTcpSocket через QDataStream, проблема

такая:

Если читать напрямую из сокета то байты есть.

Если делать через дата стрим, то данные не читаются, а commitTransaction() всегда возвращает false

Честно не понимаю что я делаю не правильно и где найти эти ошибки чтения которые произошли если commitTransaction() вернул false?

QDataStream stream{};
stream.setDevice(socket);



void readyRead() {

QByteArray data{};
stream.startTransaction();

stream >> data;

if(!stream.commitTransaction()) {
return; //Always called
}
}

7 ответов

20 просмотров
Zarret- Автор вопроса

Код конечно же не полный, соотв коннекты к сигналам, коннект сокета к хосту есть, просто с телефона код писать это сомнительное занятие, поэтому так, на форуме нашел тему с идентичной проблемой, ответа там, к сожалению, нет

Сначало установите версию. Потом когда отправьте дарные подождите немного. WaitForBytesWriteen

Zarret- Автор вопроса
. Azmiddin
Сначало установите версию. Потом когда отправьте д...

Разве waitForBytesWritten надо вызывать если мы принимаем данные по сигналу readyRead?

Zarret
Разве waitForBytesWritten надо вызывать если мы пр...

Нет когда вы отправьте данные. Еще нужно указать версию на всякой случае

Zarret- Автор вопроса
. Azmiddin
Нет когда вы отправьте данные. Еще нужно указать в...

Тогда это уже есть, я просто не указал в сниппете

Zarret
Тогда это уже есть, я просто не указал в сниппете

Лучше ввезде проверить у вас есть проверка?

Похожие вопросы

Обсуждают сегодня

Ребят, а за скок можно впарить анон чат с апишкой и веб админкой ?
Eugene Неелов
15
с помощью чего можно бота добавить как админа в чат? (условно в боте есть кнопка, нажатие на которую приводит тебя к выбору чата и выдаче прав боту)
ηє νєямσяє
5
'frakturBold' => ['𝖆', '𝖇', '𝖈', '𝖉', '𝖊', '𝖋', '𝖌', '𝖍', '𝖎', '𝖏', '𝖐', '𝖑', '𝖒', '𝖓', '𝖔', '𝖕', '𝖖', '𝖗', '𝖘', '𝖙', '𝖚', '𝖛', '𝖜', '𝖝', '𝖞', '𝖟', '𝕬', '𝕭', '𝕮', '𝕯'...
Roma
4
Ты просто гитлеровскую эстетику плохо понимаешь. Он же всё под Цезаря делал. А это как бы запрещённый приём в политике. Пиджаки они зачем все носят? Чтобы показать что они тип...
Ivan Kropotkin
4
Добрый день, не подскажите, если в OC-V3 поменять страндартную директорию /storage/ на /storage2/ - не будет сильно много проблем ?
Max Dubovsky
32
Добрый день, подскажите как правильно сделать filter в backend-e. Есть модель (товар) у который связь belongsToMany (компания), компаний > 4k, поэтому выборку типа ->all(); н...
Max Dubovsky
7
А цены чем оправданы?
Lencore
7
напомните, как заменить placeholder , а не добавить содержимое ?
Artem N
4
Каким то образом можно определить ширину экрана пользователя перед загрузкой partial-а? Надо рассчитать ширину кадров слайдера для ресайза картинок для container-fluid.
Point 111
22
Всем привет. Нужна платная консультация от тех, кто сталкивался с октябрём в кластере или шарит оч хорошо в цмс. Проблема следующая: после переноса в кластер октябрь начал ...
wl
8
Карта сайта