-
Хорошо послал, очено далеко.
-
> [0] denissoft (17.09.08 19:11)
как тут и писали - точно так же как и 1 КБ.
только размер файла лучше передавать в виде int64
-
> только размер файла лучше передавать в виде int64
Размер файла лучше вообще не передавать, а то всегда найдется умник, который подключится к твоему серверу и отправит туда $FFFFFFFF
-
> Rouse_ © (26.09.08 11:07) [22]
>
>
> > только размер файла лучше передавать в виде int64
>
> Размер файла лучше вообще не передавать, а то всегда найдется
> умник, который подключится к твоему серверу и отправит туда
> $FFFFFFFF
точно-точно лучше передавать в каждом уникальный идентификатор открытого файла(выдается на сервере) смещение в файле и размер текущего пакета + хешированный размер пакета(а то всегда найдется умник, который подключится к твоему серверу и отправит туда $FFFFFFFF) + сигнатура + контрольная сумма
Ну и проверять чтобы размер пакета не был более, скажем 32Кб + таймаут между пакетами в 30-120 сек(если превышение, то разрыв соединения).
-
> [22] Rouse_ © (26.09.08 11:07)
я передаю обычно, чтобы можно было расчитать сколько процентов до завершения осталось.
далее уже по частям порциями передача идет.
то что умник передаст $FFFFFFFF это уже проблемы умника и системы безопасности. тот, кто не имеет доступа до момента, когда передается размер файла не дойдет )
-
> точно-точно лучше передавать в каждом уникальный идентификатор
> открытого файла(выдается на сервере) смещение в файле и
> размер текущего пакета + хешированный размер пакета(а то
> всегда найдется умник, который подключится к твоему серверу
> и отправит туда $FFFFFFFF) + сигнатура + контрольная сумма
зачем усложнять? Достаточно кидать все в BASE64 и границы пакетов обрамлять любым символом не входящим в BASE64-последовательность :)
-
Эк вас в дебри понесла нелегкая)
А автор поди схлопотал WSAEWOULDBLOCK и его постиг творческий ступор)
-
-
А вообще самый простой способ только для передачи файлов - поднять TFTP из Indy и пересылать через него.