using System.Net; namespace ByteOrder; internal class Program { static void Main(string[] args) { /* * 바이트 오더: 바이트를 메모리에 저장하는 순서 * 인텔/AMD 계열: 리틀엔디언 - 하위 바이트 먼저 저장 * ARM 계열: 빅엔디언 - 상위 바이트 먼저 저장 */ byte[] buffer = BitConverter.GetBytes(12345678); Console.WriteLine(BitConverter.ToString(buffer)); // ★★★ 네트워크 레벨에서는 반드시 빅엔디언 쓰기로 약속함 // 호스트 바이트 순서에서 네트워크 바이트 순서로 변경 int num2 = IPAddress.HostToNetworkOrder(12345678); byte[] buffer2 = BitConverter.GetBytes(num2); Console.WriteLine(BitConverter.ToString(buffer2)); // 네트워크 바이트 순서에서 호스트 바이트 순서로 변경 int num3 = BitConverter.ToInt32(buffer2); int num4 = IPAddress.NetworkToHostOrder(num3); Console.WriteLine(num4); } }