不管基於何種理由,網路封包在制定標準的過程中,採用的是big endian的系統,而x86 CPU 所使用的,則是little endian系統,因此對使用x86的CPU而言,網路程式的設計就必須額外考慮編碼轉換的問題,否則一個簡單的IP或是PORT的數值資料都可能因為編碼的問題,而被對方視為錯誤。
為了解決CPU與網路標準之間對數值編碼不同的問題,下列的函式可以幫助程式設計師完成轉換的工作:
為了解決CPU與網路標準之間對數值編碼不同的問題,下列的函式可以幫助程式設計師完成轉換的工作:
htonl():把32位元數值從little endian轉換為big endian
htons():把16位元數值從little endian轉換為big endian
ntohl():把32位元數值從big endian轉換成little endian
ntohs():把16位元數值從big endian轉換成little endian