В связи с ответом Корнеля, вам необходимо знать, как хранятся данные, одна большая ошибка состоит в том, что вы считаете, что данные соответствуют вашим ожиданиям. Разные платформы, разные процессоры, ключевое слово endianess . Некоторые сохраняются от старшего к младшему байту, другие сохраняются от младшего к старшему байту. Это единственная цель использования ntohs и семьи. Смотрите здесь для подробного использования его Beej , сайт сетевого программирования.
Кстати, вы можете использовать это как отдельную функцию, если, скажем, обрабатывая файл данных с другой платформы с другим порядком байтов, вы можете использовать это для преобразования данных в архитектуру с прямым порядком байтов до обработки. Это не наносит ущерба накладным расходам и гарантирует успешную обработку данных.
Надеюсь, это поможет,
С наилучшими пожеланиями,
Том.