As funções htonl()
e ntohl()
em uma biblioteca big endian C na verdade não fazem nada (elas são "no-op" s). Desta forma, o mesmo código pode ser usado em máquinas BE e LE; compilado com o C lib na máquina LE, essas funções inverterão os bytes, mas na máquina BE, elas deixarão o mesmo, já que a ordem de bytes da rede é big endian, e o host é big endian já.
Em outras palavras, no seu exemplo, a máquina BE A nunca muda nada. Apenas a máquina de LE B faz.