我需要将这些类型的数据转换为byte数组,也就是十六进制的,中文转换为ASCII码,转换为Byte数组后进行UDP通信,最好是能函数中也实现高低位互换,应该怎么写?谢谢

解决方案 »

  1.   


            private byte[] GetServiceId(string serviceId)
            {
                long ret = long.Parse(serviceId);
                return BitConverter.GetBytes(ret);
            }String类型的,我试过这样写,但是单步调试时看Byte数组中的值,发现里面都是ASCII码值字符串"***"
    我是下面这么写的Byte[] head = System.Text.Encoding.Default.GetBytes("***");"***"转换为十六进制应该是"2A2A2A",但是我这样写,我单步调试看到里面是"42 42 42",42好像是ASCII码值,汉字才要转换为ASCII码值,数字应该是十六进制,搞不清楚该怎么转换了,有做过这方面的,可以指教一下吗?先谢谢
      

  2.   

    Byte[] head = System.Text.Encoding.Default.GetBytes("***");
    是系统默认的(GB)编码,不会是ASCII码吧System.Text.Encoding.ASCII.GetBytes("***"); 这才对
      

  3.   

    System.Text.Encoding.ASCII.GetBytes()  这些方法  msdn 一查就清楚了 
      

  4.   

    是UDP通信,我现在这些转换没有问题,我在自己电脑上运行一个服务器端程序,能成功接收并解析出来,也就是发送的IP设成127.0.0.1,但是发送到别的IP就是不成功!
      

  5.   

    UDP是无连接,收不到数据,也不会报异常!