LINUX.ORG.RU

Тебе нужны сериализация и десериализация.

name_no ★★
()

Пробовал копать в сторону QByteArray, но как в него запихать структуру тоже не нашел.

плохо копали.

[…]
struct my_struct my_data;
QByteArray data = QByteArray::fromRawData(&my_data, sizeof(my_data));
[…]
arsi ★★★★★
()
Ответ на: комментарий от arsi

тоесть, «QByteArray::fromRawData((const char *)&my_data, sizeof(my_data));».

и вообще, в QTcpSocket доступен метод «qint64 write(const char *data, qint64 maxSize)».

arsi ★★★★★
()
Ответ на: комментарий от arsi

А выравниваний в структуре ты не боишся? Имхо структуру надо сначала сериализовать в char[], и его потом писать в сокет.

alex_custov ★★★★★
()
Ответ на: комментарий от alex_custov

> А выравниваний в структуре ты не боишся?

а мне-то чего бояться? ;)

корректно передавать бинарные данные вообще не так просто. выранивания, байтордер…

передавать в текстовом виде — самое оно. кроме отсутствия проблем с выравниванием и порядком байт его ещё и отлаживать проще. хотя да, имеем значительный оверхед (если всё по уму делать, с контролем типов и т.п.).

arsi ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.