Как узнать размер скачиваемого через WinSock файла?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
natcap
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 234
Зарегистрирован: 25.06.2003 (Ср) 13:15
Откуда: Москва

Как узнать размер скачиваемого через WinSock файла?

Сообщение natcap » 10.11.2004 (Ср) 19:11

Как узнать размер скачиваемого через WinSock файла?
Медленно переезжаю с 6.0 на 2008 .... задавая тонны глупых вопросов :)

EvilCoder
Посланец джихада
Посланец джихада
Аватара пользователя
 
Сообщения: 706
Зарегистрирован: 25.01.2004 (Вс) 15:08

Сообщение EvilCoder » 10.11.2004 (Ср) 19:13

:arrow: :arrow: <DELETED> :twisted: 8)
Последний раз редактировалось EvilCoder 14.08.2008 (Чт) 1:49, всего редактировалось 1 раз.
<<------- EvilCoder ------->>

natcap
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 234
Зарегистрирован: 25.06.2003 (Ср) 13:15
Откуда: Москва

Сообщение natcap » 10.11.2004 (Ср) 19:18

Енто как???? на сервере файл, мне надо его закачать на машину...
чтобы вывести прогрессбар скачки мне надо размер знать того, что льется, как мне это узнать?????
Медленно переезжаю с 6.0 на 2008 .... задавая тонны глупых вопросов :)

EvilCoder
Посланец джихада
Посланец джихада
Аватара пользователя
 
Сообщения: 706
Зарегистрирован: 25.01.2004 (Вс) 15:08

Сообщение EvilCoder » 10.11.2004 (Ср) 19:27

:arrow: :arrow: <DELETED> :twisted: 8)
Последний раз редактировалось EvilCoder 14.08.2008 (Чт) 1:48, всего редактировалось 1 раз.
<<------- EvilCoder ------->>

natcap
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 234
Зарегистрирован: 25.06.2003 (Ср) 13:15
Откуда: Москва

Сообщение natcap » 10.11.2004 (Ср) 19:30

Да при чем тут сервер - моя программа???? я СКАЧИВАЮ с сервера (считай, что чужого) файл
Медленно переезжаю с 6.0 на 2008 .... задавая тонны глупых вопросов :)

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 10.11.2004 (Ср) 19:32

Ты не понял, ее программа - клиент, надо с сервака вытянуть его размер (не сервака, а этого файла). После чего его скачать на клиента, причем закачка инициируется клиентом.

И вообще, хватит передергивать, обчитались про провисающие шлейфы, понимаешь... :)

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Сообщение SSecurity » 10.11.2004 (Ср) 20:50

Правильно ... Вот тебе описание с неизвестными
Вызываешь на стороне A, функцию FileLen(FilePath), с целью определить какой размер у передаваемого файла. Шлешь на сторону B, которая жаждит файл получить строку в которой указан размер файла, полученный функцией FileLen(FilePath) со стороны A.

Потом "сторона B" думает "Нихр_на себе какой размер, нет ... качать не буду и не отправляет запрос на скачку стороне A." или же наоборот :-)
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 10.11.2004 (Ср) 21:29

natcap, речь идёт о HTTP или о чём?
если о HTTP - то размер идёт в заголовке "Content-Length".
если о самописном протоколе - то как сделаешь, так и будет :-)
Изображение

EvilCoder
Посланец джихада
Посланец джихада
Аватара пользователя
 
Сообщения: 706
Зарегистрирован: 25.01.2004 (Вс) 15:08

Сообщение EvilCoder » 10.11.2004 (Ср) 21:41

:arrow: :arrow: <DELETED> :twisted: 8)
Последний раз редактировалось EvilCoder 14.08.2008 (Чт) 1:48, всего редактировалось 1 раз.
<<------- EvilCoder ------->>

natcap
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 234
Зарегистрирован: 25.06.2003 (Ср) 13:15
Откуда: Москва

Сообщение natcap » 11.11.2004 (Чт) 11:35

не сервер наверное а протокол? ;)
ШТТП, чтоб его... по ФТП автоабдейт мне делать начальство запретило :(
что в этом заголовке идет - замечательно, но я не знаю, как эти заголовки получать!!!! Мне бы команду или еще что, что позволяет слушать что отвечает сервер... сама найти не могу :( (обыскалась уже)
Медленно переезжаю с 6.0 на 2008 .... задавая тонны глупых вопросов :)

CodeName33
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 297
Зарегистрирован: 01.09.2004 (Ср) 13:25
Откуда: SPb

Сообщение CodeName33 » 11.11.2004 (Чт) 15:22

Дык а в чём проблема?
Когда отправляешь ВинСоком с помошью SendData:

GET: http://www.someserver.com/file.exe
User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Windows 98)
Accept: */*
Host: www.someserver.com

А он тут же отвечает в DataArrival перед тем как сам файл передавать:

HTTP/1.1 206 Partial Content
Server: thttpd
Content-Type: application/octet-stream
Date: Fri, 12 Nov 2004 00:18:02 GMT
Last-Modified: Thu, 30 Sep 2004 06:05:31 GMT
Accept-Ranges: bytes
Connection: close
Content-Length: 156002

Разбиваешь этот ответ на массив строк (Split)
Находишь элемент содержащий:
Content-Length: xxxxxx
и вырезаешь из строки размер после двоеточия.

Только не все серваки передают размер файла
Программисты не глючат - глючат компиляторы...


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

    TopList