<<
>>

Сетевой порядок байт. Функции htons(), htonlQ, ntohsQ, ntohlQ

Передача от одного вычислительного комплекса к другому символьной информации, как правило (когда один символ занимает один байт), не вызывает проблем. Однако для числовой информации ситуация усложняется.

Как известно, порядок байт в целых числах, представление которых занимает более одного байта, может быть для различных компьютеров неодинаковым. Есть вычислительные системы, в которых старший байт числа имеет меньший адрес, чем младший байт (big-endian

Рис. 14-15.6. Схема взаимодействия клиента и сервера для протокола СЮР

byte order), а есть вычислительные системы, в которых старший байт числа имеет больший адрес, чем младший байт (little-endian byte order). При передаче целой числовой информации от машины, имеющей один порядок байт, к машине с другим порядком байт мы можем неправильно истолковать принятую информацию.

Для того чтобы этого не произошло, было введено понятие сетевого порядка байт, т. е. порядка байт, в котором должна представляться целая числовая информация в процессе передачи ее по сети (на самом деле — это big-endian byte order). Целые числовые данные из представления, принятого на компьютере- отправителе, переводятся пользовательским процессом в сетевой порядок байт, путешествуют в таком виде по сети и переводятся в нужный порядок байт на машине-получателе процессом, которому они предназначены. Для перевода целых чисел из машинного представления в сетевое и обратно используется четыре функции: htons (), htonl (), ntohs(),ntohl().

Параметр у них — значение, которое мы собираемся конвертировать. Возвращаемое значение — то, что получается в результате конвертации. Направление конвертации определяется порядком букв h (host) и n (network) в названии функции, размер числа — последней буквой названия, то есть htons — это host to network short, ntohl — network to host long.

Для чисел с плавающей точкой все обстоит гораздо хуже. На разных машинах могут различаться не только порядок байт, но и форма представления такого числа. Простых функций для их корректной передачи по сети не существует. Если требуется обмениваться действительными данными, то это нужно делать либо на гомогенной сети, состоящей из одинаковых компьютеров, либо использовать символьные и целые данные для передачи действительных значений.

<< | >>
Источник: В.Е. Карпов К.А. Коньков. Основы операционных систем. 2005

Еще по теме Сетевой порядок байт. Функции htons(), htonlQ, ntohsQ, ntohlQ:

  1. Рождение сетевой журналистики.
  2. Функции журналистики. Понятие функцию Многообразие социальных и информационных потребностей общества – объективная основа функций журналистики.
  3. Модель сетевого анализа коммуникационных сетей.
  4. Нет-мен или каково быть сетевым журналистом?
  5. “Не язык — функция поэта, а поэт — функция языка”
  6. 6. СИСТЕМА СМИ. ОСОБЕННОСТИ ИНФРАСТРУКТУРЫ ПЕЧАТНЫХ, ВЕЩАТЕЛЬНЫХ, СЕТЕВЫХ СМИ. ВЛИЯНИЕ ТЕХНОЛОГИЧЕСКИХ ОСОБЕННОСТЕЙ НА ПРОДУКТ ЖУРНАЛИСТСКОЙ ДЕЯТЕЛЬНОСТИ.
  7. § 11 Ведомство бракоразводных дел в России. – Признание брака недействительным и законные причины к сему. – Порядок производства сих дел и последствия приговора об отмене бра- ка. – Расторжение брака и законные его причины. – Порядок производства сих дел. – Примирительная деятельность суда и особенные затруднения в церковном судопроизводстве. – Иноверческие дела о разводах.
  8. 11.2.3. Функции религии
  9. 1.1.2. Функции социологии
  10. РЕЧЬ: ФУНКЦИЯ ПРЕДИКАТИВНАЯ
  11. ФУНКЦИЯ ПСИХИЧЕСКАЯ НАТУРАЛЬНАЯ
  12. ФУНКЦИЯ ПСИХОФИЗИОЛОГИЧЕСКАЯ
  13. Иерархия функций
  14. Функции управления в организации.
  15. ФУНКЦИЯ ВЕГЕТАТИВНАЯ
  16. Тема 4. Функции сравнительного правоведения
  17. ФУНКЦИЯ ПСИХИЧЕСКАЯ: ЛОКАЛИЗАЦИЯ