quando usar hton / ntoh e quando converter dados sozinho?

Para converter uma matriz de bytes de outra máquina que seja big-endian, podemos usar:

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;
}

se outra máquina é pouco endian, podemos usar

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;
}

por que precisamos das funções acima? não devemos usar hton no remetente e ntoh ao receber? É porque hton / nton é converter inteiro enquanto este convert () é para matriz de caracteres?

questionAnswers(2)

yourAnswerToTheQuestion