Задать вопрос
@t38c3j

Как на си разобрать бинарные данные?

Здравствуйте. Поднял на ESP12 веб сервер для отдачи статики и веб сокеты для обмена данными.
Вопрос вот в чем, на стороне клиента на javascript я формирую бинарные данные и отправляю их по веб сокету

var arrayBuffer = new ArrayBuffer(20);
var dataView = new DataView(arrayBuffer);
dataView.setUint8(0, 1);
dataView.setUint8(1, indexElement);


Как мне на стороне сервера это разобрать?
  • Вопрос задан
  • 306 просмотров
Подписаться 2 Оценить 5 комментариев
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Как правило определяют структуру, соответствующую данным, затем создают переменную с типом этой структуры, считывают данные в неё и просто обращаются к полям структуры.
#pragma pack(push,1)
typedef _websocketPacket {
  unsigned char one; // здесь ваша 1
  unsigned char indexElement;
  unsigned char rest[18];
} wsPacket;
#pragma pack(pop)
wsPacket myData;
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@abcd0x00
Вопрос вот в чем, на стороне клиента на javascript я формирую бинарные данные и отправляю их по веб сокету

Ты должен их сериализовать в какой-нибудь определённый (или стандартизованный) формат типа json или xml и потом разбирать такие данные на принимающей стороне.

Даже сишные данные с одной машины на другую не передаются прямо, потому что одна и та же сишная программа может иметь разные размеры одних и тех же типов на разных компах.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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