Всем привет!
Есть прога, которая шлёт данные по сети. Прогу, сразу скажу, писал не я. Моя задача принять эти данные и распарсить их.
Все что мне известно это структура данных, сама посылка.
Структура данных такова:
struct values
{
int a;
float b;
float c;
int d;
int e;
}
Каждое значение - 4 байта. Там и дробные и отрицательные числа.
Вот фрагмент посылки:
Data= "5000000031743c426a17353f04000000f2ffffff"
Data= "2900000008239c414cffd83e030000005dffffff"
Data= "390000004816fc41a1a8693ff5ffffff17000000"
Data= "510000005d688641a632393f1e000000a4000000"
Data= "19000000257db240b63c413f1d000000a2ffffff"
Data= "1f000000db643142795b3c3f0c000000a4000000"
Data= "12000000 8965dc41 1ec65b3f f6ffffff 6c000000"
Можно попробовать разбирать полученный массив на байты. Но нет ли более изящного варианта.
Да, кстати там используется обратный порядок байт.
void MainWindow::slotReadClient()
{
QTcpSocket* ClientSocket = (QTcpSocket*)sender();
// qDebug() << "Data=" << ClientSocket->readAll().toHex();
int w;
quint16 data_size = 0;
QDataStream in(ClientSocket);
in.setByteOrder(QDataStream::LittleEndian);
in.readRawData(ClientSocket->readAll().data(), sizeof(ClientSocket->readAll().data()));
in >> w;
qDebug()<<"w=" <<w;
//????? help!!!