Ejemplo n.º 1
0
        public static byte[] Handshake(string clientName, byte[] info_hash, string peer_id)
        {
            PacketGenerator rs = new PacketGenerator();

            byte[] reservedBytes = { 0, 0, 0, 0, 0, 0, 0, 0 };

            rs.WriteByte(Convert.ToByte(clientName.Length));
            rs.WriteString(clientName);
            rs.WriteByteArray(reservedBytes);
            rs.WriteByteArray(info_hash);
            rs.WriteString(peer_id);

            return(rs.GetByteArray());
        }
Ejemplo n.º 2
0
        public static byte[] BitField(byte[] bitfield)
        {
            PacketGenerator rs = new PacketGenerator();

            rs.WriteInt(1 + bitfield.Length); //Length
            rs.WriteByte(5);                  //ID
            rs.WriteByteArray(bitfield);      //Payload: Bitfield
            return(rs.GetByteArray());
        }
Ejemplo n.º 3
0
        public static byte[] Piece(int pieceid, int piece_begin_offset, byte[] piece_part) //WARNING: USE REQUESTED AMOUNT OF BYTES (MAX 16KB) AT A TIME, SEND IN MULTIPLE REQUESTS
        {
            PacketGenerator rs = new PacketGenerator();

            rs.WriteInt(9 + piece_part.Length); //Length
            rs.WriteByte(7);                    //ID
            rs.WriteInt(pieceid);               //Payload: Piece ID [index]
            rs.WriteInt(piece_begin_offset);    //Payload: Byte Offset [begin]
            rs.WriteByteArray(piece_part);      //Payload: Piece Block [block]

            return(rs.GetByteArray());
        }