когда использовать hton / ntoh и когда конвертировать данные самостоятельно?

Чтобы преобразовать байтовый массив с другой машины с прямым порядком байтов, мы можем использовать:

long long convert(unsigned char data[]) {
  long long res;
  res = 0;
  for( int i=0;i < DATA_SIZE; ++i)
    res = (res << 8) + data[i];
  return res;
}

если другая машина с прямым порядком байтов, мы можем использовать

long long convert(unsigned char data[]) {
  long long res;
  res = 0;
  for( int i=DATA_SIZE-1;i >=0 ; --i)
    res = (res << 8) + data[i];
  return res;
}

зачем нам нужны вышеуказанные функции? не должны ли мы использовать hton у отправителя и ntoh при получении? Это потому, что hton / nton должен конвертировать целое число, а этот convert () предназначен для массива char?

Ответы на вопрос(2)

Ваш ответ на вопрос