c# socket编程  byte[] cmd = new byte[4];为什么数组类型要用byte???其它类型不行吗??
ASCIIEncoding.Default.GetBytes(dsM.Tables[0].Rows[i][1].ToString())的功能是什么???cmd[0] = 0x03;为什么不能写成cmd[0] = 3;  ?????

解决方案 »

  1.   

    c# socket编程  byte[] cmd = new byte[4];为什么数组类型要用byte???其它类型不行吗?? 
    你可以根据byte转换为其他类型
    ASCIIEncoding.Default.GetBytes(dsM.Tables[0].Rows[i][1].ToString())的功能是什么??? 
    这个是根据dsM.Tables[0].Rows[i][1].ToString()字符串用ASCII编码方式获取byte[]cmd[0] = 0x03;为什么不能写成cmd[0] = 3;  ?????
    可以效果一样  0x03 表示16进数3 和10进3是一样的 都是3  
    但 0x10 是不能用 cmd[0]=10;的 0x表示16进数
      

  2.   

    把byte数组换成int类型的可以吗??
      

  3.   

    可以 byte可以看能所有数据的根源....
    BitConvert.To???()各种方法..
      

  4.   

    SOCKET的流支持这种格式啊,至于其它的类型,还不行!
    LZ对低层太不熟悉,多补补吧。
      

  5.   

    流里面的东西就是BYTE类型的.
    ASCIIEncoding.Default.GetBytes(dsM.Tables[0].Rows[i][1].ToString())
    这个是类型转换用的得到一个byte[]
      

  6.   

    第一个问题
       因为数据在计算机或网络上通信是以字节(8位二进制)流来进行的。
    第二个问题
       ASCIIEncoding.Default.GetBytes(dsM.Tables[0].Rows[i][1].ToString()) 是根据默认的编码方式(ASCII是一个字节表示一个字符,UNICode是两个字节表示一个字符。UTF-8是可变字节表示一个字符)第三个问题cmd[0] = 0x03;这是告诉计算,这是一个十六进制(引用一楼:可以效果一样  0x03 表示16进数3 和10进3是一样的 都是3  
    但 0x10 是不能用 cmd[0]=10;的 0x表示16进数 )
    把byte数组换成int类型的可以吗??
    可以。。