首页 > 其他 > 详细

主机字节与网络字节的转换

时间:2014-04-27 09:57:03      阅读:467      评论:0      收藏:0      [点我收藏+]
bubuko.com,布布扣
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Net;

namespace ConsoleApplication2
{
    class Program
    {
        private static byte[] HostToNet(long iValue)
        {
            byte[] buffer = BitConverter.GetBytes(iValue);
            Array.Reverse(buffer);
            return buffer;
        }

        private static long NetToHost(byte[] data, int index)
        {
            Array.Reverse(data, index, sizeof(long));
            return BitConverter.ToInt64(data, index);           
        }              

        static void Main(string[] args)
        {
            Console.WriteLine("原始数值:");
            long n1 = 0x1234567890ABCDEF;
            Console.WriteLine("字符:{0}\t字节:{1}\r\n", n1.ToString("X"), BitConverter.ToString(BitConverter.GetBytes(n1)));

            Console.WriteLine("主机->网络(方法1):");           
            byte[] byteN1 = BitConverter.GetBytes(IPAddress.HostToNetworkOrder(n1));
            Console.WriteLine("字符:{0}\t字节:{1}\r\n", n1.ToString("X"), BitConverter.ToString(byteN1));

            Console.WriteLine("主机->网络(方法2):");
            byteN1 = HostToNet(n1);
            Console.WriteLine("字符:{0}\t字节:{1}\r\n", n1.ToString("X"), BitConverter.ToString(byteN1));

            Console.WriteLine("网络->主机(方法1):");
            n1 = IPAddress.NetworkToHostOrder(BitConverter.ToInt64(byteN1, 0));
            Console.WriteLine("字节:{0}\t字符:{1}\r\n", BitConverter.ToString(byteN1), n1.ToString("X"));

            Console.WriteLine("网络->主机(方法2):");
            byte[] orgbyteN1 = new byte[byteN1.Length];
            byteN1.CopyTo(orgbyteN1, 0);
            n1 = NetToHost(byteN1, 0);
            Console.WriteLine("字节:{0}\t字符:{1}\r\n", BitConverter.ToString(orgbyteN1), n1.ToString("X"));

            Console.WriteLine("字符串自动按网络(大端)转换:");
            string str = "abcd";
            byte[] byteS = Encoding.Default.GetBytes(str);
            Console.WriteLine("字符:{0}\t字节:{1}", str, BitConverter.ToString(byteS));
            Console.WriteLine("字节:{0}\t字符:{1}", BitConverter.ToString(byteS), Encoding.GetEncoding("gb2312").GetString(byteS));
        }
    }
} 


bubuko.com,布布扣

bubuko.com,布布扣

主机字节与网络字节的转换,布布扣,bubuko.com

主机字节与网络字节的转换

原文:http://www.cnblogs.com/siso/p/3692053.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!