コード例 #1
0
        //   字节长度           1               4          变长   16
        //传送的数据格式为 (包头(!)     数据包长度  内容 校验码 )
        internal byte[] SendDataConverse(byte[] sendData)
        {
            if (sendData.Length < 4)
            {
                int k = sendData.Length;
            }

            byte[] DataToSend = sendData;
            int    j          = DataToSend.Length;

            byte[] sendBytes = new byte[j + 21];
            //数据包长度
            byte[] length = LengthByte(j);
            sendBytes[0] = this.Head();
            Array.Copy(length, 0, sendBytes, 1, length.Length);
            Array.Copy(DataToSend, 0, sendBytes, 5, DataToSend.Length);

            //产生校验码
            byte[] ckeckCode = MD5Method.MD5hash(sendBytes);
            int    m         = 0;

               for (int i = sendBytes.Length - 16; i < sendBytes.Length; i++)
            {
                sendBytes[i] = ckeckCode[m];
                m++;
            }
            return(sendBytes);
        }
コード例 #2
0
        //返回true则表示接收数据正确
        internal bool CheckReceiveData(byte[] receiveData)
        {
            bool Eql = false;

            byte[] checkCode = MD5Method.MD5hash(receiveData);
            int    m         = 0;

            for (int i = receiveData.Length - 16; i < receiveData.Length; i++)
            {
                if (checkCode[m] != receiveData[i])
                {
                    Eql = true;
                }
                m++;
            }
            if (Eql)
            {
                return(false);
            }
            else
            {
                return(true);
            }
        }