예제 #1
0
파일: Signer.cs 프로젝트: wangfei0/NeoDun
        public void SendDataBlock(DataBlock data)
        {
            Message msg = new Message();

            msg.tag1  = 0x01;                   //0字节
            msg.tag2  = 0x01;                   //1字节
            msg.msgid = SignTool.RandomShort(); // 2 3 字节

            //4~7 字节
            var byteLength = BitConverter.GetBytes((UInt32)data.data.Length);

            for (var i = 0; i < 4; i++)
            {
                msg.data[i] = byteLength[i];
            }
            var sha = SignTool.HexString2Bytes(data.sha256);

            //8 到39 字节
            for (var i = 0; i < 32; i++)
            {
                msg.data[i + 4] = sha[i];
            }

            SendMessage(msg, true);
        }
예제 #2
0
        //发送包
        public void SendPackage(byte[] data)
        {
            byte[] sha = SignTool.ComputeSHA256(data, 0, data.Length);
            string key = SignTool.Hex2String(sha, 0, sha.Length);

            datapool[key] = data;
            Message msg = new Message();

            msg.tag1  = 0x01;                   //0字节
            msg.tag2  = 0x01;                   //1字节
            msg.msgid = SignTool.RandomShort(); // 2 3 字节

            //4~7 字节
            var byteLength = BitConverter.GetBytes((UInt32)data.Length);

            for (var i = 0; i < 4; i++)
            {
                msg.data[i] = byteLength[i];
            }
            //8 到39 字节
            for (var i = 0; i < 32; i++)
            {
                msg.data[i + 4] = sha[i];
            }

            SendMessage(msg, true);
        }