Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Менеджер закачек на JAVA, Желающие разрабатывать - сюда :) 
:(
    Опции темы
sergejzr
  Дата 26.10.2004, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

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



А что? Давайте напишем качалку на яве! :)
Сделаем межплатформенного OpenSource конкуррента ReGet'у!
Дополним новыми возможностями.
Прога должна получится лёгкая и многофункциональная!

Я начну с голого движка :)

Вот это копирует файл вам на диск:
Необходимо доработать:
  • проловить все ексепшены и сообщать юзеру ошибки детально.
  • Убрать штуку в отдельный поток, чтобы можно было контроллировать
  • реализовать докачку.
  • реализовать несколько потоков.
  • предусмотреть скачивание очень больших файлов. В этом случае следует списывать мегов по 10 на диск, а потом собирать
  • определить оптимальный размер баффера
  • Вести логи, сколько байт скачано для последующей дозагрузки
  • Ввести возможность вставки плагинов.
С этим движком вопрос скорее времени, чем разработки :)
Все разработки постуем в эту тему. В конце должна получится вещь :)
Активным участникам плюсы :)
Код

import java.io.*;
import java.util.regex.*;
import java.util.*;
import java.net.*;
import java.nio.channels.*;

public class HttpDownloader
{
/*
   Здесь всё понятно забираем FromUrl и записываем на диск как ToFile
*/
public void urlDownload(URL FromUrl,File ToFile) throws Exception
{
 ReadableByteChannel bc = Channels.newChannel(FromUrl.openStream());
 FileChannel fc = (new FileOutputStream(ToFile)).getChannel();

 int pos = 0;// Позиция в файле
 int transferunit = 1024;// Будем переписывать по 1024 байт
 int len;// сколько переписалось на самом деле

 while((len = (int)fc.transferFrom(bc,(long)pos,(long)transferunit)) == transferunit)
 {
  System.out.println("Zachital");
  pos += len;
 }
 System.out.println("Gotovo!");
 bc.close();
 fc.close();

}
public static void main(String[] args)
{
 HttpDownloader HDwler=new HttpDownloader();
 try
 {
  HDwler.urlDownload(new URL("http://www.google.de"),new File("index.html"));
 }
 catch (Exception e)
 {
  System.out.println("Download aborted");
 }
}

}



--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
htrader
Дата 13.11.2006, 18:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Можно ещё с потоками поманипулировать

Или разбросать задачу по машинам в ЛВС... так быстрее
PM MAIL   Вверх
xpvit
Дата 2.1.2007, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Проект загнулся?? Что насчёт GUI??
PM MAIL   Вверх
nerezus
Дата 2.1.2007, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


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

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



xpvit, ну а как ты думаешь?
если учесть, что единственный кусок кода ничего не поддерживает. Ни потоков. Ни собственно докаячки.
И вообще такой кусок на апи, например, в 1 строку пишется.


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
sergejzr
Дата 2.1.2007, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

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



Я как линух деинсталлировал, к разработкам на яве интерес приутух. Если кто хочет проект вести - пожалуйста!


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Fubu_By
Дата 14.2.2007, 04:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Всем доброго времени суток.
Как сделать чтобы можно было считывать не спервой позиции а например с 5, яменял значение pos, но файл в который записывается остаётся пустым((((.
и как можно сделать что в файл дописывались данные а не стерали, допустим качаю файл мегов так 100, а на 50 облом выкинуло или спать захотелось)) не начинать же мне качать с начала, хчеться продолжить, как это можно реализовать???

Это сообщение отредактировал(а) Fubu_By - 14.2.2007, 14:59


--------------------
PM MAIL WWW   Вверх
Ch0bits
Дата 14.2.2007, 19:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Python Dev.
****


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

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



Может кому поможет: типичный менеджер закачки на Java описан в книге "Искусство программирования на Java" (Герберт Шилд, Джейм Холмс). К нему остаётся только многопоточность прикрутить, дерево каталогов закачки и планировщик.  smile 
PM WWW   Вверх
Fubu_By
Дата 14.2.2007, 22:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Ch0bits @ 14.2.2007,  19:21)
Может кому поможет: типичный менеджер закачки на Java описан в книге "Искусство программирования на Java" (Герберт Шилд, Джейм Холмс). К нему остаётся только многопоточность прикрутить, дерево каталогов закачки и планировщик.  smile

аможет подскажешь где скачать книгу?


--------------------
PM MAIL WWW   Вверх
Ch0bits
Дата 15.2.2007, 00:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Python Dev.
****


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

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



Не знаю, у меня бумажная.
PM WWW   Вверх
Fubu_By
Дата 19.2.2007, 02:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



ну так что тема замялась?(((


--------------------
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Тестирование программ"
mr.Anderson

Правила должны соблюдаться всеми без исключения.

  • Темы, в которых будут обнаружены нарушения, будут закрыты или удалены.
  • К пользователям, многократно нарушившим правила, будут применены отдельные санкции.

Для тех, кто создаёт темы:

В данном разделе запрещается размещать программы, которые в той или иной степени могут принести вред потенциальному тестеру программы (например, трояны, вирусы и т.д.)

  • Публикуя ссылку на программу, обязательно проверьте её работоспособность.
  • ОБЯЗАТЕЛЬНО: напишите название программы, а главное - её описание и приведите хотя бы один скриншот. Скриншот по размерам не более 500х500 пикселов, для скриншотов большего размера приводите ссылки на них.
  • Программа, которую Вы даёте на тестирование, должна быть откомпилирована, так как не каждый является программистом, да и мало кто будет ради тестирования устанавливать соответствующий софт.

Для тех, кто тестирует:

Описывая результаты тестирования программы, указывайте тип и версию ОС, а также характеристики компьютера и прочую информацию, которая может повлиять на работоспособность.


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

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


 




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


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

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