![]() |
Модераторы: Snowy, Poseidon, MetalFan |
![]() ![]() ![]() |
|
Isaev |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 8.11.2007 Где: Germany Репутация: нет Всего: нет |
Дан сервер с парой десятков файлов, имена сформерованы рандомно по маске 'Name_00000000.rar' .. 'Name_FFFFFFFF.rar'. Требуется максимально быстро найти названия файлов!
Делаю так:
Работает, но по скромным подсчётам 13 лет для полного перебора. PS: при обращении к несуществующему файлу сервер редиректит на свою страницу с сообщением 404. |
|||
|
||||
Addmin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 803 Регистрация: 3.2.2006 Где: сослан в Сибирь Репутация: нет Всего: 15 |
Мне кажется, что постановка задачи неверна. Серверу - серверное. Сделайте cgi-программу, которая будет заниматься проверкой файлов на сервере и выдавать список файлов в любом удобном виде, и просто получайте этот список из своей локальной программы.
P.S. И так ли уж нужна проверка архива на первую R? Может просто искать файлы по маске "Name*.rar"? -------------------- SimpleFit.ru - блог о том, как заниматься спортом нормальным людям -- Стимул работы в Сибири - комары. |
|||
|
||||
Isaev |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 8.11.2007 Где: Germany Репутация: нет Всего: нет |
В чём разница?
Речь идёт не о своём сервере... Т.е. я cgi туда же всё равно залить не смогу, потому не смогу получить список, как из локальной программы! Или я не совсем понял ход Вашей мысли? Тогда КАК?
Вполне, только снова КАК? У меня на считывание 1 байта и на запрос имени разница по времени не получилась. Это сообщение отредактировал(а) Isaev - 30.1.2011, 16:38 |
||||||
|
|||||||
Addmin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 803 Регистрация: 3.2.2006 Где: сослан в Сибирь Репутация: нет Всего: 15 |
Сервер выполнит операции поиска файлов на себе намного быстрее, чем программа, которая обращается к файлам на сервере с локального компьютера. Ну, знаете PHP? Хотя бы немного? На любом сервере он должен быть установлен. Если, конечно, это не ftp-хранилище. Допустим, скрипт на PHP читает весь список файлов, расположенных на сервере по указанному пути и с нужной маской имени , в массив, а затем выдаёт список файлов в виде текста... Подождите, вы хотите сказать, что вы вообще не имеете доступа к серверу? То есть, он чужой? Да, тогда дело плохо. -------------------- SimpleFit.ru - блог о том, как заниматься спортом нормальным людям -- Стимул работы в Сибири - комары. |
|||
|
||||
Isaev |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 8.11.2007 Где: Germany Репутация: нет Всего: нет |
||||
|
||||
Isaev |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 8.11.2007 Где: Germany Репутация: нет Всего: нет |
Больше идей ни у кого нету?
|
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
Совет банальный как банан - в 100 тредов задача займет в 100 + (X/K) раз меньше времени
Где X - количество файлов, К - количество вариантов. Основное время занимает ответ от сервера. Так что 1 запрос и 100 одновременных запросов будут выполняться примерно одинаковое время. Единственная проблема - могут забанить. Впрочем, в случае одного треда это не менее реально. Также не обязательно тянуть сразу файл. Можно сначала запросить Head. И, если информация о файле устраивает, то тянуть уже файл, а не тягать 404-ю страницу каждый раз целиком. Ну какой смысл тянуть всю страницу? 404? Всё, брось каку. Не нужно читать файл (InternetReadFile). Он не вкусный. |
|||
|
||||
Isaev |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 8.11.2007 Где: Germany Репутация: нет Всего: нет |
||||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Сети" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Сети | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |