static int mestempa;
        static int checksum = 0;
        public byte[] getmessage(byte dizhi,byte xinxileixing,byte len, byte dong, byte shijian, byte sudu, string juzi, byte yeyihao, byte leixinghao)
        {
            byte[] messagetemp = System.Text.Encoding.Default.GetBytes(juzi);
            byte[] message = new byte[messagetemp.Length + 19];
          
            message[0] = 0x2A;
            message[1] = 0x2A;
            message[2] = 0x53;
            message[3] = 0x54;
            message[4] = dizhi;
            message[5] = len;
            message[6] = yeyihao;
            message[7] = leixinghao;
            message[8] = dong;
            message[9] = shijian;
            message[10] = sudu;
            
            for (int i = 0; i < message.Length; i++)
            {
                for (int j = 0; j < messagetemp.Length; j++)
        {  
                        byte d = messagetemp[j];   
                        byte[] dd = new byte[4];
                        dd[0] = (byte)(d / (256 * 256 * 256));
                        dd[1] = (byte)((d / (256 * 256)) % 256);
                        dd[2] = (byte)((d / 256) % 256);
                        dd[3] = (byte)(d % 256);
                        mestempa = Convert.ToInt16(message[0]) + Convert.ToInt16(message[1]) + Convert.ToInt16(message[2]) + Convert.ToInt16(message[3]) + Convert.ToInt16(message[4]) + Convert.ToInt16(message[5]) + Convert.ToInt16(xinxileixing) + Convert.ToInt16(dd[0]) + Convert.ToInt16(dd[1]) + Convert.ToInt16(dd[2]) + Convert.ToInt16(dd[3]);
                   }
            }
            //防止数据溢出 
            byte[] messs = new byte[4];
            messs[0] = (byte)(mestempa / (256 * 256 * 256));
            messs[1] = (byte)((mestempa / (256 * 256)) % 256);
            messs[2] = (byte)((mestempa / 256) % 256);
            messs[3] = (byte)(mestempa % 256);
          
                        //校验用和
            for (int j = 0; j < message.Length + messagetemp.Length; j++)
              checksum = checksum + (int)messs[j];
            message[11] = (byte)(checksum / 256);            //两个校验位
            message[12] = (byte)(checksum % 256);
            int xx = messagetemp.Length;
            for (int ii = 0; ii < messagetemp.Length; ii++)
            {
                message[ii + 13] = messagetemp[ii];
            }            message[xx + 13] = 0x2A;
            message[xx + 14] = 0x2A;
            message[xx + 15] = 0x45;
            message[xx + 16] = 0x4E;
                 return message;
        }
  我是一个菜鸟  谁能告诉下  这样写  有错误吗   有的话 麻烦指出来   请来点实质性的代码    不然我看不懂  不要老是 思路   思路是有  但是总是错

解决方案 »

  1.   

     string d = "";
                        if (comboBox1.Text == "打出")
                        {
                            d = "00";
                        }
                        else if (comboBox1.Text == "闪烁")
                        {
                            d = "01";
                        }
                        else if (comboBox1.Text == "左移")
                        {
                            d = "02";
                        }
                        else if (comboBox1.Text == "上移")
                        {
                            d = "03";
                        }
                        else if (comboBox1.Text == "下移")
                        {
                            d = "04";
                        }
                        //获得车辆信息end
                        byte tiaohao = (byte)Convert.ToUInt32(textBox3.Text);
                        byte dong = (byte)Convert.ToUInt32(d);
                        byte shijian = (byte)Convert.ToUInt32(textBox1.Text);
                        byte sudu = (byte)Convert.ToUInt32(comboBox2.Text);
                        string juzi = textBox2.Text.Trim();
                        long sum = long.Parse(carname);
                        byte dizhi;
                        byte len = (byte)Convert.ToUInt32(textBox2.Text.Length + d.Length +textBox1.Text.Length + comboBox2.SelectedItem.ToString().Length) ;
                       // byte len = (byte)Convert.ToUInt16(textBox2.Text.Length);
                        byte xinxileixing;
                      
                        if (di == "FF")
                        {
                            dizhi = 0xff;
                        }
                        else
                        {
                            dizhi = (byte)Convert.ToUInt32(textBox12.Text.Trim());
                        }
                        if (count % 255 != 0)
                        {
                            xinxileixing = 0x13;
                        }
                        else
                        {
                            xinxileixing = 0x60;
                        }                    byte[] card = new byte[4];
                        card[0] = (byte)(sum / (256 * 256 * 256));
                        card[1] = (byte)((sum / (256 * 256)) % 256);
                        card[2] = (byte)((sum / 256) % 256);
                        card[3] = (byte)(sum % 256);                    byte[] message = getmessage(dizhi, xinxileixing, len,dong,shijian, sudu, juzi, 0x03, tiaohao);
                        for (int j = 0; j < port_count; j++)
                        {                        if (port[j].ToString() == local_port)
                            {
                                server[j].udpclient.mySendTest(server[j].server, portsend, card, message, 0x59); //发送命令
                                j = port_count + 1;                        }
                        }
      

  2.   

    主要问下   byte d = messagetemp[j];   
      byte[] dd = new byte[4];
      dd[0] = (byte)(d / (256 * 256 * 256));
      dd[1] = (byte)((d / (256 * 256)) % 256);
      dd[2] = (byte)((d / 256) % 256);
      dd[3] = (byte)(d % 256);
      mestempa = Convert.ToInt16(message[0]) + Convert.ToInt16(message[1]) + Convert.ToInt16(message[2]) + Convert.ToInt16(message[3]) + Convert.ToInt16(message[4]) + Convert.ToInt16(message[5]) + Convert.ToInt16(xinxileixing) + Convert.ToInt16(dd[0]) + Convert.ToInt16(dd[1]) + Convert.ToInt16(dd[2]) + Convert.ToInt16(dd[3]);
     这块 有错误吗
      

  3.   


    byte d = messagetemp[j];  //d是8位无符号整数,范围0-255
      byte[] dd = new byte[4];
      dd[0] = (byte)(d / (256 * 256 * 256));//d / (256 * 256 * 256)是0
      dd[1] = (byte)((d / (256 * 256)) % 256);//d / (256 * 256)是0
      dd[2] = (byte)((d / 256) % 256);//d / 256是0
      dd[3] = (byte)(d % 256);不知道你要做什么
      

  4.   

    byte 0~255
    实在不好做,转换成int吧,然后进行处理
      

  5.   


    我想把那个 juzi 转成 byte[]  然后与另一个byte[]  相加