![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Girin |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 81 Регистрация: 6.2.2008 Репутация: нет Всего: нет |
Каким образом можно передать подключившемуся клиенту , несколько файлов а также их название и хеш без установки нового соединения. Вариант с заголовком :
не совсем подходит потому что кол-во передаваемых файлов заранее неизвестно ,и может достигать нескольких десятков . Имеет ли смысл организовать очереди ConcurrentLinkedQueue, BlockingQueue ? |
|||
|
||||
| ecologist |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 452 Регистрация: 28.2.2007 Репутация: 5 Всего: 9 |
А может ну его, эти несколько файлов
Собираем все в один архив и пусть на клиенте сам клиент и распаковывает. Это сообщение отредактировал(а) ecologist - 6.2.2008, 11:19 |
|||
|
||||
| Girin |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 81 Регистрация: 6.2.2008 Репутация: нет Всего: нет |
|
|||
|
||||
| sith |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 537 Регистрация: 11.2.2007 Репутация: нет Всего: 1 |
я думаю что твоя задача не решиться с помощью сервлетов... сервлеты поддерживают HTTP протокол... в нем не определен метод который позволяет отправлять клиенту сразу несколько файлов... либо вариант с архивацией... либо работа с сокетами... но тут не доконца ты изложил задачу... если клиент собсвенный... то можно через сокеты передавать все что нужно...
-------------------- Там где ты ставишь глупые смайлики, я вбиваю восклицания знаки!!! |
|||
|
||||
| Girin |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 81 Регистрация: 6.2.2008 Репутация: нет Всего: нет |
Да клиент собственный. Задача такая, что необходимо реализовать некое подобие сервера обновлений , который в зависимости от запроса клиента будет отсылать ему определенное кол-во файлов , а также доп информацию об этих файлах
|
|||
|
||||
| v2v |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1620 Регистрация: 20.9.2006 Где: Киев Репутация: 9 Всего: 56 |
я вообщем то не понял в чём проблема?
1. клиент запрашивает обновления 2. сервер шлёт инфу о том сколько файлов обновлений будет и их имена 3. клиент получает и включает цикл: 4. дай файл + ид файла 5. сервер отправляет файл 6. клиент получает переходит к след. файлу п.4 или п.7 если файлы закончились 7. клиент шлёт серверу "спасибо" всё |
|||
|
||||
| Girin |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 81 Регистрация: 6.2.2008 Репутация: нет Всего: нет |
Хорошо , тогда возникают следующие вопросы : 1.Как передать инфу о всех файлах - их может быть очень много , около ста. У каждого свое название, свой хеш и еще некоторая доп инфа . Все это запихивать в заголовок ответа ? Или реализовать в методах сервлета использование сокетов ? 2. Синхронизация приема/посылки - у клиентов может быть разная скорость, одновременно возможно подключение нескольких клиентов .Ставить временные задержки на сервере типа Thread.sleep(2000) , или проверять уведомления от клиента о запросе на следующий файл ? Это сообщение отредактировал(а) Girin - 10.2.2008, 22:17 |
|||
|
||||
| v2v |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1620 Регистрация: 20.9.2006 Где: Киев Репутация: 9 Всего: 56 |
если ты решил делать это через http протокол, то : первым ответом сервера будет простой хмл , в котором и передается инфа о всех файлах : клиент распарсит хмл, сделает список ( имён файлов + хешей ) и по очереди будет скачивать файлы, если после скачки и-того файла он не прошёл хеш проверку, отправляется на перезакачку этого файла.
после скачки всех файлов: отправляет сообщение, что скачал всё. Добавлено через 50 секунд
тоесть по сути пока клиент не запросит очередной файл, ничего ему не передавать. |
|||
|
||||
| Girin |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 81 Регистрация: 6.2.2008 Репутация: нет Всего: нет |
Спасибо за идею ! Наверно как раз xml файл самый подходящий вариант , с помощью него еще можно будет проверить что уже есть у клиента и сколько обновлений ему требуется. А для передачи самих байтов данных уже тогда попробую использовать сокеты
|
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |