А>length=filelength(h_from); А>if (length>blockSize) А> bait=read(h_from,vBlock,blockSize); /* Количество байт в блоке */ А>else А> bait=read(h_from,vBlock,length); /* Количество байт в блоке */
Вот здесь ты можешь вылететь в бесконечный цикл. bait у тебя unsigned, а значит, что если read вернет ошибку -1, в твоем случае это будет 65535, что больше нуля. Функция read может считать максимум 65534 байт за раз, не больше.
А>while (bait > 0) А>{ А>.................... А>length-=bait; А>if (length>blockSize) А> bait=read(h_from,vBlock,blockSize); А>else А> bait=read(h_from,vBlock,length); А>}