BitCoinClient.Program.WriteVarInt C# (CSharp) 메소드

WriteVarInt() 공개 정적인 메소드

public static WriteVarInt ( BinaryWriter bw, ulong val ) : void
bw System.IO.BinaryWriter
val ulong
리턴 void
        public static void WriteVarInt(BinaryWriter bw, ulong val)
        {
            if (val < 0xFD)
                bw.Write((byte)val);
            else if( val <= 0xFFFF )
            {
                bw.Write((byte)0xFD);
                bw.Write((ushort)val);
            }
            else if (val <= 0xFFFFFFFF)
            {
                bw.Write((byte)0xFE);
                bw.Write((uint)val);
            }
            else
            {
                bw.Write((byte)0xFF);
                bw.Write(val);
            }
        }

Usage Example

예제 #1
0
        public void RequestData(List <Transaction> transactions, List <Block> blocks)
        {
            MemoryStream stream = new MemoryStream();
            BinaryWriter bw     = new BinaryWriter(stream);

            int count = transactions.Count + blocks.Count;

            Program.WriteVarInt(bw, (ulong)count);
            foreach (Transaction t in transactions)
            {
                const int transactionType = 1;
                bw.Write(transactionType);
                bw.Write(t.Hash);
            }
            foreach (Block b in blocks)
            {
                const int blockType = 2;
                bw.Write(blockType);
                bw.Write(b.Hash);
            }
            SendPacket("getdata", stream.ToArray());

            bw.Close();
        }