====== مفاهیم Byte Order و Endianness ====== * در هر عدد، به انتهای کم ارزش little end و به انتهای پر ارزش big end گفته می شود. مثلا در 1234 انتهای کم ارزش 34 و انتهای پر ارزش 12 است. * اگر برای ذخیره اعداد در حافظه ابتدا انتهای پر ارزش ذخیره شود، به این روش Big-Endian گفته میشود. * اگر برای ذخیره اعداد در حافظه ابتدا انتهای کم ارزش ذخیره شود، به این روش Little-Endian گفته میشود. * در شبکه، برای ارسال اعداد ابتدا انتهای پر ارزش ارسال میشود (Big-Endian) که به آن Network-Byte-Order نیز گفته میشود. * در کامپیوتر ها ممکن است از روش Little-Endian یا Big-Endian برای ذخیره اعداد استفاده شود. برای راحتی کار به آن Host-Byte-Order می گویند. * کامپیوتر های بر پایه معماری Intel همه‌گی Little-Endian هستند. * از توابع زیر برای تبدیل Host-Byte-Order به Network-Byte-Order و بالعکس استفاده می شود. در نام این توابع n به معنی network و h به معنی host و s به معنی short و l به معنی long است. htons() host to network short htonl() host to network long ntohs() network to host short ntohl() network to host long {{ :c-socket-programming:endianness.png |}}