Неявные типы

Опубликовано в Технологии > Серверные технологии Продолжение

Стандарт XDR определяет, как должен быть закодирован объект данных для каждого из типов данных, перечисленных в табл. 20.1. Однако эти кодировки содержат только элементы данных, но не информацию об их типах. Например, стандарт XDR определяет, что для 32-битовых двоичных целых чисел должен использоваться формат слова, оканчивающийся старшим байтом (такая же кодировка используется в протокольных заголовках TCP/IP). Если в прикладной программе для кодирования 32-битового целого числа применяется представление XDR, то полученный результат занимает точно 32 бита; эта кодировка не содержит дополнительных битов, которые применялись бы для обозначения элемента данных как целого числа или указания его длины. Поэтому клиенты и серверы, в которых используется стандарт XDR, должны согласовать между собой точный формат сообщений, которыми они обмениваются. Программа не может интерпретировать сообщение, закодированное с помощью стандарта XDR, не имея информации о том, какой именно формат и какие типы имеют все поля данных.

Программная поддержка для стандарта XDR

Программисты, использующие представление XDR для симметричного преобразования данных, должны внимательно следить за тем, чтобы каждый элемент этих данных перед передачей по сети был преобразован во внешнюю форму. Аналогичным образом, в программе-получателе необходимо проконтролировать, чтобы каждый принятый элемент данных был преобразован во внутреннее представление. В главе 5 показан один из способов, который может использоваться для выполнения преобразования: вставка кода в вызов функции для преобразования каждого элемента данных в сообщении во внешнюю форму перед отправкой этого сообщения и вставка вызова функции для преобразования каждого элемента данных во внутреннюю форму при поступлении сообщения.

Для большинства программистов не составит труда написать функции преобразования основной части форматов XDR. Однако для осуществления некоторых преобразований требуется значительный опыт (например, для преобразования из внутреннего представления в компьютере числа с плавающей точкой в стандартное представление XDR без потери точности необходимо владеть основами численного анализа). Чтобы можно было исключить потенциальные ошибки преобразования, реализация XDR включает библиотечные процедуры для выполнения всех необходимых преобразований.

Инструменты своими руками - хотите найчиться делать их без проблем? Тогда рекомендую вам посетить сайт www.norstar.ru потому как на других сайтах в основном только картинки, а тут есть и текстовые описания и схемы производства самоделок.

Библиотечные процедуры XDR

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