BitCoinClient.Program.Byteswap C# (CSharp) Method

Byteswap() public static method

public static Byteswap ( System.UInt64 inval ) : System.UInt64
inval System.UInt64
return System.UInt64
        public static UInt64 Byteswap(UInt64 inval)
        {
            UInt64 outval = ((inval & (UInt64)0xFF00000000000000) >> 56) |
                            ((inval & (UInt64)0x00FF000000000000) >> 40) |
                            ((inval & (UInt64)0x0000FF0000000000) >> 24) |
                            ((inval & (UInt64)0x000000FF00000000) >> 8) |
                            ((inval & (UInt64)0x00000000FF000000) << 8) |
                            ((inval & (UInt64)0x0000000000FF0000) << 24) |
                            ((inval & (UInt64)0x000000000000FF00) << 40) |
                            ((inval & (UInt64)0x00000000000000FF) << 56);

            return outval;
        }

Same methods

Program::Byteswap ( short inval ) : short
Program::Byteswap ( uint inval ) : uint

Usage Example

Example #1
0
        void SendVersionPacket()
        {
            IPEndPoint remote = (IPEndPoint)mSocket.RemoteEndPoint;
            IPEndPoint local  = (IPEndPoint)mSocket.LocalEndPoint;

            // Send version packet
            MemoryStream stream = new MemoryStream();
            BinaryWriter w      = new BinaryWriter(stream);

            // -- PAYLOAD --
            // version
            w.Write(0x00011171);

            // Services
            Int64 services = 0x0000000000000001;

            w.Write(services);

            // Timestamp
            UInt64 timestamp = Program.UnixTime();

            timestamp = 0x52F95D8E;
            w.Write(timestamp);

            // addr_recv
            w.Write(services);
            w.Write((UInt64)0);
            w.Write((ushort)0);
            w.Write((ushort)0xFFFF);
            byte[] remoteBytes = remote.Address.GetAddressBytes();
            w.Write(remoteBytes);
            w.Write(Program.Byteswap((short)8333));

            // addr_from
            w.Write(services);
            w.Write((UInt64)0);
            w.Write((ushort)0);
            w.Write((ushort)0xFFFF);
            byte[] localBytes = local.Address.GetAddressBytes();
            w.Write(localBytes);
            w.Write(Program.Byteswap((short)8333));

            // nonce
            w.Write((UInt64)0xC4ACFF3D04805523);

            // user_agent
            w.Write((byte)0xF);
            w.Write("/Satoshi:0.8.6/".ToArray());

            // start_height
            w.Write((int)0x00045768);

            byte[] packetData = stream.ToArray();
            SendPacket("version", packetData);
            w.Close();
        }
All Usage Examples Of BitCoinClient.Program::Byteswap