Доброго дня! Есть устройство с которого нужно считывать строку в ACSII протокол общения TCP/IP. Есть рабочий код:
QString tmp;
QByteArray bytes = m_TcpSocket->readAll();
tmp.append(bytes);
ui->textEdit->append(tmp);
// На выходе получаем строку: "22N00001CPZL59OMX3G3TG7710140010062586CG9P6KDCZSBDNT7GFQPA1ERDT63X36"
Но, везде указывают что нужен QDataStream "Класс незаменимым для обмена данными по сети с использованием сокетных соединений." Как я не пытался, я не могу получить через него заветную строчку, как в коде выше. Варианты которые я попробовал:
QString tmp;
QByteArray bytes = m_pTcpSocket->readAll();
QDataStream out(&bytes, QIODevice::ReadWrite);
out.setVersion(QDataStream::Qt_5_10);
out >> tmp;
ui->textEdit->append(tmp);
//Получаю пустую строчку.
Вариант 2( из книги Шлее М. Qt5.3):
QDataStream in(m_TcpSocket);
in.setVersion(QDataStream::Qt_DefaultCompiledVersion);
for(;;){
if(!m_BlockSize) {
if(m_TcpSocket->bytesAvailable() < sizeof(quint16)){
break;
}
in >> m_BlockSize;
}
if(m_TcpSocket->bytesAvailable() < m_BlockSize){
break;
}
QString str;
in >> str;
ui->textEdit->append(str);
m_BlockSize = 0;
}
Доходит до if(m_TcpSocket->bytesAvailable() < m_BlockSize) и дальше не идет, а если пустить дальше, то всё равно пустая строка на выходе. Подскажите, чего не хватает для работы с QDataStream?
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Необходимо написать программу, которая бы читала лог-файлы ВидовсПроблема в том, что мы этого ещё не учили, а курсовую делать нужно
Школьная задача C++, решить не могу, подскажите в чем ошибка или просто намекните как по другому ее решать?
ЗдравствуйтеУ меня есть задача- написать функции для графа через сопредельные вершины - добавить вершину, добавить ребро, добавить вес ребра
Ошибка на этапе выполненияОтладчиком определил что слетает во втором вызове функции minusEL на месте delete[]ar