LINUX.ORG.RU

цепи маркова что-ли


0

0

возник вопрос по определению типа данных...
классически протокол состоит из заголовков фиксированной длины или в начале передается длина передаваемых данных. ну допустим у меня просто длина в начале, а потом тупо данные в hex, как распознать что из них должно быть asci, а что decimal?


Поэтому для кодировки данных выбирают одну кодировку - например Base64. А там уже в своем сообщении сам разбивай. Например JSON:

[{"decimal": 23423}, {"asci":"sdfsdf"}]

А потом жми во что хошь (Base64 например). Хошь более кошерный формат - юзай ASN.1

anonymous
()

> у допустим у меня просто длина в начале, а потом тупо данные в hex

"Длина в начале" должна либо иметь фиксированныей размер в байтах, либо иметь какой-то спецсимвол-разделитель заголовка и данных, например

0x00 0x00 0x00 0x03 (4 байта длины данных, оно же ((u_int32_t)3)) 0x01 0x02 0x03 (3 байта данных)

0x31 0x30 (строк "10") 0x00 (разделитель) 0x00 0x01 ... 0x0A (10 байта данных)

no-dashi ★★★★★
()

>а потом тупо данные в hex, как распознать что из них должно быть asci, а что decimal?

слинкуйся с libastral

А в протоколе не указывается тип передаваемого пейлоада вместе с длинной?

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

>А в протоколе не указывается тип передаваемого пейлоада вместе с длинной?
тип- т.е. кодировка?

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