2009-06-15 13 views
14

In quale ordine di byte si verifica il trasferimento dei dati sulla rete? È Little Endian o Big Endian? Come viene convertito nel rispettivo ordine dei byte una volta che i dati raggiungono l'host?Big endian o Little endian in rete?

+0

si può spiegare un po 'di più? TCP/UDP? –

+0

raggiunge l'host da dove/come? –

risposta

20

"Ordine byte di rete" è Big Endian e protocolli come TCP lo utilizzano per i campi interi (ad esempio numeri di porta). Funzioni come htons e ntohs possono essere utilizzate per fare la conversione.

I dati stessi non hanno alcun endianness, è interamente definito dall'applicazione, a meno che non si utilizzi uno Presentation Layer come XDR.

2

È trasferito in qualsiasi ordine venga inviato.

Tradizionalmente, i protocolli Internet utilizzano big endian, perché le macchine che eseguivano la maggior parte della comunicazione erano big endian.

Tuttavia, se si definiscono le proprie strutture da inviare attraverso la rete, non è necessario seguire tale convenzione.

Con la programmazione C, in genere, si utilizza spesso le macro htons o ntohs per eseguire la conversione.

1

se si utilizza tcp utilizzando la porta htons ((short)) consente di utilizzare il protocollo di rete sicuro (fondamentalmente big endian) e non si preoccupa di poco contro big endian.

se si ha bisogno di convertire l'uso http://www.codeguru.com/forum/showthread.php?t=292902

sua spiegato bene

Problemi correlati