скачивание файлов TCP/IP
Вопрос: как в теории должно быть устроено скачивание файлов?
P.S.: начал читать Снайдера - Эффективное программирование TCP/IP, но пока не нашел решения своей проблемы.
Цитата: psyhitus
По учебе стоит задача реализовать ftp клиент на уровне TCP/IP
Дык у TCP/IP самого уровня четыре. =)
Цитата: psyhitus
При объеме в 5 - 10 кбайт все качается отлично. Как только пытаюсь загрузить 10 мбайт программа подвисает... и в результате сервер по таймауту отключает клиента.
Ну поскольку телепатов тут нет - желательно или код выложить или подробно по шагам расписывать процесс отправки/скачивания данных в коде вашего ftp клиента. Иначе гадать смысла нет.
proc SaveFile {} {
global DataSocket ControlSocket .c.text CurSelDir CurSelFile
set rfile $CurSelFile
if [string compare $rfile "0"]==0 {
tk_messageBox -message "You choose directory \n we can download only files"
return
} else {
set filename [tk_getSaveFile]
}
cmdPASV
puts $ControlSocket "RETR $rfile"
flush $ControlSocket
.c.text insert end "< RETR $rfile\n"
# получаем 150 Connection Accepted
gets $ControlSocket line
.c.text insert end "> $line\n"
# получаем 226 Transfer Ok
gets $ControlSocket line
puts $line
set file [open $filename wb]
fconfigure $DataSocket -translation auto -buffering buf -bufferSize 204800
while { ![eof $DataSocket] } {
gets $DataSocket dataline
puts $file $dataline
}
close $file
close $DataSocket
}