Прямой и обратный порядок байт

Комментарии

3 комментария(ев)
аватар: raxp
raxp
Дата: ПТ, 07/11/2014 - 18:59
Звание: Мастер
Сообщений: 1089

В любом случае, число нужно передать или строку, лучше формировать пакет данных (байт) оговоренной структуры (в Delphi это могут быть записи record, к примеру) (на стороне передатчика и приемника) с контрольной суммой или контрольным битом для контроля на стороне приема. Что и реализовано, скажем в том же фрейме UART с его старт-стопными битами и битами контроля четности, и полем DATA.

Цитировать

Для передачи числа по сети (tcp/ip, UART, USB и т.д.) принят стандарт прямого порядка байт
тут следует уточнить, что не всегда разработчик напрямую работает с нижним уровнем и формирует, скажем, фрейм UART или UDP пакет самостоятельно. Довольно часто, особенно используя библиотеки-фреймворки-надстройки, даже на уровне МК, разработчик пользуется абстракцией от протокола и имеет дело лишь с "полем данных", в которое может пихать свои байты-числа в любом порядке, лишь бы другая сторона знала этот порядок. Это называется протоколом верхнего уровня.

аватар: Darth_Vaider
Darth_Vaider
Дата: СБ, 08/11/2014 - 04:03
Звание: Посвященный
Сообщений: 503

Цитировать

...лишь бы другая сторона знала этот порядок

Разумеется! В коде я показал, как вписать 32-битное число на любую позицию байтового массива. Ничто не мешает таким же способом вписать в массив несколько чисел, байты-маркеры, строковую информацию, контрольную сумму. Это позволяет легко определить порядок поля данных, создать свой протокол верхнего уровня - тут всё зависит от фантазии и сложности задачи. После этого массив легко скормить драйверу.

аватар: w0rm
w0rm
Дата: СБ, 08/11/2014 - 01:01
Звание: Наблюдатель
Сообщений: 12

Тема обсуждается практически в любом букваре по сетевому программированию.