Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сервлеты , пересылка файлов, Передачи нескольких файлов клиенту 
:(
    Опции темы
Girin
Дата 6.2.2008, 11:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 6.2.2008

Репутация: нет
Всего: нет



Каким образом можно передать подключившемуся клиенту , несколько файлов а также их название и хеш без установки нового соединения. Вариант с заголовком :
 
Код

 response.setHeader("fileName",name);
response.addHeader("hash","");

не совсем подходит потому что кол-во передаваемых файлов заранее неизвестно ,и может достигать нескольких десятков . Имеет ли смысл организовать очереди ConcurrentLinkedQueue,  BlockingQueue ? 
PM   Вверх
ecologist
Дата 6.2.2008, 11:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 452
Регистрация: 28.2.2007

Репутация: 5
Всего: 9



А может ну его, эти несколько файлов smile

Собираем все в один архив и пусть на клиенте сам клиент и распаковывает.

Это сообщение отредактировал(а) ecologist - 6.2.2008, 11:19
PM MAIL   Вверх
Girin
Дата 6.2.2008, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 6.2.2008

Репутация: нет
Всего: нет



Цитата(ecologist @ 6.2.2008,  11:19)
А может ну его, эти несколько файлов smile

Собираем все в один архив и пусть на клиенте сам клиент и распаковывает.

smile Тоже вариант. Но предпочтительнее отсылать по одному, так как соединение у клиента может оборваться, а архив может оказаться  достаточно большим . Тем более в зависимости от запроса каждому клиенту, возможно, потребуется отсылать разное кол-во файлов... следовательно придется вызывать каждый раз функцию архивации . Еще думаю для отсылки доп информации использовать сериализацию . То есть каждый файл представлять как объект , с полями имени и хеша
PM   Вверх
sith
Дата 10.2.2008, 12:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 537
Регистрация: 11.2.2007

Репутация: нет
Всего: 1



я думаю что твоя задача не решиться с помощью сервлетов... сервлеты поддерживают HTTP  протокол... в нем не определен метод который позволяет отправлять клиенту сразу несколько файлов... либо вариант с архивацией... либо работа с сокетами... но тут не доконца ты изложил задачу... если клиент собсвенный... то можно через сокеты передавать все что нужно...


--------------------
Там где ты ставишь глупые смайлики, я вбиваю восклицания знаки!!!
PM MAIL   Вверх
Girin
Дата 10.2.2008, 21:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 6.2.2008

Репутация: нет
Всего: нет



Да клиент собственный. Задача такая, что необходимо реализовать некое подобие сервера обновлений , который в зависимости от запроса клиента будет отсылать ему определенное кол-во файлов , а также доп информацию об этих файлах
PM   Вверх
v2v
Дата 10.2.2008, 21:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: 9
Всего: 56



я вообщем то не понял в чём проблема?
1. клиент запрашивает обновления
2. сервер шлёт инфу о том сколько файлов обновлений будет и их имена
3. клиент получает и включает цикл:
4. дай файл + ид файла
5. сервер отправляет файл 
6. клиент получает переходит к след. файлу п.4 или п.7 если файлы закончились
7. клиент шлёт серверу "спасибо" smile
всё


--------------------
PM   Вверх
Girin
Дата 10.2.2008, 22:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 6.2.2008

Репутация: нет
Всего: нет



Цитата(v2v @ 10.2.2008,  21:58)
я вообщем то не понял в чём проблема?
1. клиент запрашивает обновления
2. сервер шлёт инфу о том сколько файлов обновлений будет и их имена
3. клиент получает и включает цикл:
4. дай файл + ид файла
5. сервер отправляет файл 
6. клиент получает переходит к след. файлу п.4 или п.7 если файлы закончились
7. клиент шлёт серверу "спасибо" smile
всё

Хорошо , тогда возникают следующие вопросы : 
1.Как передать инфу о всех файлах - их может быть очень много , около ста. У каждого свое название, свой хеш и еще некоторая доп инфа . Все это запихивать в заголовок ответа ? Или реализовать в методах сервлета использование сокетов ? 
2. Синхронизация приема/посылки - у клиентов может быть разная скорость, одновременно возможно подключение нескольких клиентов .Ставить временные задержки на сервере типа Thread.sleep(2000) , или проверять уведомления от клиента о запросе на следующий файл ? 
 

Это сообщение отредактировал(а) Girin - 10.2.2008, 22:17
PM   Вверх
v2v
Дата 10.2.2008, 22:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: 9
Всего: 56



если ты решил делать это через http протокол, то : первым ответом сервера будет простой хмл , в котором и передается инфа о всех файлах : клиент распарсит хмл, сделает список ( имён файлов + хешей ) и по очереди будет скачивать файлы, если после скачки и-того файла он не прошёл хеш проверку, отправляется на перезакачку этого файла.
после скачки всех файлов: отправляет сообщение, что скачал всё.

Добавлено через 50 секунд
Цитата(Girin @  10.2.2008,  22:17 Найти цитируемый пост)
.Ставить временные задержки на сервере типа Thread.sleep(2000) , или проверять уведомления от клиента о запросе на следующий файл ? 

тоесть по сути пока клиент не запросит очередной файл, ничего ему не передавать.


--------------------
PM   Вверх
Girin
Дата 10.2.2008, 23:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 6.2.2008

Репутация: нет
Всего: нет



Спасибо за идею ! Наверно как раз xml файл самый подходящий вариант , с помощью него еще можно будет проверить что уже есть у клиента  и сколько обновлений ему требуется. А для передачи самих байтов данных  уже тогда попробую использовать сокеты 
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0945 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.