Ejemplo n.º 1
0
        public int SavePieceAndRequestForNewOne(byte[] packet)
        {
            PacketGenerator gs          = new PacketGenerator(packet);
            int             piece       = gs.ReadInt();
            int             pieceOffset = gs.ReadInt();

            byte[] data = gs.ReadLeftoverByteArray();

            CurrentFile.WritePiece(piece, pieceOffset, data);

            Console.WriteLine("Received piece: {0} {1:0.000}%", piece, ((float)CurrentFile.GetDownloadedSize() / (float)CurrentFile.GetSize()) * 100.0);

            if (data.Length < 1024 * 16)
            {
                byte[] have = PacketGenerator.Have(piece);
                Send(have);
                // Console.WriteLine("Successfully downloaded piece: {0}", piece);
            }

            return(RequestForNewPiece());
        }