Распределенная закачка файла

Все что касается разработки, отладки, использования подключаемых модулей.

Moderators: Korney San, marcipan

Post Reply
Ven
Бывалый
Posts: 11
Joined: 17 Feb 2006, 22:40 Fri
Contact:

Распределенная закачка файла

Post by Ven »

http://www.nncron.ru/forums/viewtopic.php?t=1137
Я вот решил попробовать написать плагин такой.
Подскажите пожалуйста где DM хранит информацию о том, какие номера байт уже скачаны и ка вообще надо офоромлять файл-проект?
Спасибо.
Ven
Бывалый
Posts: 11
Joined: 17 Feb 2006, 22:40 Fri
Contact:

Post by Ven »

При анализе в Hex-редакторе для закачек с 1,2,3,4 секциями ...
1)ДМ всегда при остановке закачки докачивает до адреса , заканчивающегося на
a)одна секция в закачке : FFF
б) две и более : F или 7
2)Его служебная часть соответственно начинается с адреса с цифрами 000(при одной секции) и 8,10(при двух и более секций) в конце... начинается она с сигнатуры BA07 ,после чего идет 356 байтов ,из них большинство забито нулями, и после этого начинается ключевое слово UURRLL , сразу за которым в текстовом ASCII виде идет путь к файлу закачки...
3)обнаружить длину файла, закаченного куска, оставшегося куска и чего-то такого не удалось... есть предположение, что до UURRLL идет служебная часть , отвечающая за настройки менеждера именно для этого файла, а после UURRLL идет инормация про сам файл (рамзмеры кусочков, начальные адреса и т.п. )
4)после сигнатуры BA07 через разное кол-во байт (в зависимости от кол-ва секций в закачке) имеется сигнатура 4F CD CE 01 , возможно, это конец поля для установок секций закачек, т.к. после него идут нули до UURRLL ,но для 3 секций было обнаружены ненулевые байты после этой сигнатуры..
marcipan
Гуру
Posts: 1400
Joined: 11 Jun 2005, 3:55 Sat
Location: Санкт-Петербург

Re: Распределенная закачка файла

Post by marcipan »

Ven wrote: ...как вообще надо офоромлять файл-проект?
Здесь.
Ven
Бывалый
Posts: 11
Joined: 17 Feb 2006, 22:40 Fri
Contact:

Post by Ven »

Я там не нашел. Может ткнете где именно, если там есть?
marcipan
Гуру
Posts: 1400
Joined: 11 Jun 2005, 3:55 Sat
Location: Санкт-Петербург

Post by marcipan »

Обновленный пример/шаблон с описанием здесь (изменилось только описание, файл readme.txt): http://www.one.com.ua/dm/download/dmtest_plugin.zip
Ven
Бывалый
Posts: 11
Joined: 17 Feb 2006, 22:40 Fri
Contact:

Post by Ven »

marcipan, я там не нашел ничего из того, что мне нужно.
Ven
Бывалый
Posts: 11
Joined: 17 Feb 2006, 22:40 Fri
Contact:

Post by Ven »

Может быть разработчики помогу все-таки?
Меня интересует документация на файлы .DMF и .DMFr.
Также интересно каким образом можно сделать так, чтобы качались только определенные заданные диапазоны байт.
Я, если надо, без плагина обойдусь - сделаю патчер файлов-проектов, который будет делать то, что нужно.
ukc
Posts: 5
Joined: 31 Oct 2006, 15:55 Tue
Contact:

Post by ukc »

Наковырял тут только что формат служебных данных DM, что дописываются в конец недокачанных (DMF) файлов.
Предположительно это что-то вроде:

Code: Select all

typedef struct section_tag
{
	unsigned __int64 begin;
	unsigned __int64 position;
	unsigned __int64 end;
	unsigned __int64 unknown;
} section;

#pragma pack(push, 4)
typedef struct DMF_tag
{
	unsigned int signature1; // always 0x7BA
	section sections[11];
	char signature2[6]; // always "UURRLL"
	char url[250];
} DMF;
#pragma pack(pop)
Имел желанием написать плагин для распределения закачки, но обломался. Может кому пригодится =)
ivan386
Posts: 2
Joined: 04 Mar 2007, 10:26 Sun

Мэнеджер закачки файла.

Post by ivan386 »

Программа (плагин, или ещё что то) дающая возможность грузить один и тот же файл кажой проге из сетей доступных ей.

Хранит всю инфу о файле TTH, SHA1, имя, зеркала ну и соответственно размер.
Программа принимает от других загруженные части и пишет в файл.
Сообщает другим подключенным прогам о новых загруженных частях.
Выдает загруженные части по запросу.

Такая штука избавит от надобности писать километры кода для поддержки разных сетей и даст возможность разным прогам действовать совместно (Даже однопрофильным).

Я бы хотел ей объеденить DM (Хороший груз в несколько потоков), Shareaza (Объединение сетей BitTorrent, eDonkey 2000, Gnutella1 и 2), ApexDC++ (Доступ в сети Dirrect Connect).
Post Reply