Страница: 1 |
Страница: 1 |
Вопрос: Как узнать конец загрузки файла ?
Добавлено: 17.08.05 13:49
Автор вопроса: VisBas | Web-сайт:
Как узнать конец загрузки ф-ла, если сервер не выдает Content-Length (страница формир. динамич.), и используется HTTP 1.0 ?
Ответы
Всего ответов: 9
Номер ответа: 1
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #1
Добавлено: 17.08.05 16:55
а чем загружешь?
Может попробовать поискать "конец" типа </html> итп...
Номер ответа: 2
Автор ответа:
Barsik
Разработчик Offline Client
ICQ: 343368641
Вопросов: 17
Ответов: 686
Web-сайт:
Профиль | | #2
Добавлено: 17.08.05 17:42
2HACKER:
только зачем
Номер ответа: 3
Автор ответа:
VisBas
Вопросов: 44
Ответов: 127
Web-сайт:
Профиль | | #3
Добавлено: 17.08.05 17:52
Загружаю с помощью winsock
искать конец </html> не пойдет, т.к. некоторые сайты его не возвращают..
мне нужен "абсолютный" способ определения конца, независимый от сайта
Номер ответа: 4
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #4
Добавлено: 17.08.05 20:14
у виншока SendComplete есть
Номер ответа: 5
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #5
Добавлено: 17.08.05 20:17
или
if Winsock1.State = ... (я непомню чё там должно быть, посмотри сам...)
???
Номер ответа: 6
Автор ответа:
Black Dragon
ICQ: 321186096
Вопросов: 30
Ответов: 347
Web-сайт:
Профиль | | #6
Добавлено: 17.08.05 20:36
Нужно подключить контрол к проекту и смотреть через Object Browser, там и константы к Winsock.State есть. По их названию поймешь.
Номер ответа: 7
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #7
Добавлено: 17.08.05 22:44
Сервер обязан либо возвращать Content-length, либо использовать chunked для ответа, тогда смотришь по 0, как число байт в следующем куске ответа. Если уж вообще тупой сервер, то да, по закрытию канала или минутному таймауту.
Номер ответа: 8
Автор ответа:
VisBas
Вопросов: 44
Ответов: 127
Web-сайт:
Профиль | | #8
Добавлено: 18.08.05 09:26
Сервер действительно "вообще тупой". Я разобрался, после загрузки - Winsock1.State = 8, я и раньше пытался определить конец по Winsock1.State, но думал что Winsock1.State измениться с получением последней порции данных, а оказывается он меняется чуть позже т.е. анализировать его в Winsock1_DataArrival бесполезно.
Спасибо всем за помощь
Номер ответа: 9
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #9
Добавлено: 18.08.05 21:25
Нужно подключить контрол к проекту и смотреть через Object Browser, там и константы к Winsock.State есть. По их названию поймешь.
Это мне что-ли объясняли? )))Или это для справки другим как посмотреть...
2 Black Dragon
написано же "посмотри сам" Это наверное имелось ввиду что мне оно нах ненадо, и пускай смотрит тот кому это нужно, я только ткнул где посмотреть