http://www.nncron.ru/forums/viewtopic.php?t=1137
Я вот решил попробовать написать плагин такой.
Подскажите пожалуйста где DM хранит информацию о том, какие номера байт уже скачаны и ка вообще надо офоромлять файл-проект?
Спасибо.
Распределенная закачка файла
Moderators: Korney San, marcipan
При анализе в 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 секций было обнаружены ненулевые байты после этой сигнатуры..
1)ДМ всегда при остановке закачки докачивает до адреса , заканчивающегося на
a)одна секция в закачке : FFF
б) две и более : F или 7
2)Его служебная часть соответственно начинается с адреса с цифрами 000(при одной секции) и 8,10(при двух и более секций) в конце... начинается она с сигнатуры BA07 ,после чего идет 356 байтов ,из них большинство забито нулями, и после этого начинается ключевое слово UURRLL , сразу за которым в текстовом ASCII виде идет путь к файлу закачки...
3)обнаружить длину файла, закаченного куска, оставшегося куска и чего-то такого не удалось... есть предположение, что до UURRLL идет служебная часть , отвечающая за настройки менеждера именно для этого файла, а после UURRLL идет инормация про сам файл (рамзмеры кусочков, начальные адреса и т.п. )
4)после сигнатуры BA07 через разное кол-во байт (в зависимости от кол-ва секций в закачке) имеется сигнатура 4F CD CE 01 , возможно, это конец поля для установок секций закачек, т.к. после него идут нули до UURRLL ,но для 3 секций было обнаружены ненулевые байты после этой сигнатуры..
Re: Распределенная закачка файла
Здесь.Ven wrote: ...как вообще надо офоромлять файл-проект?
Обновленный пример/шаблон с описанием здесь (изменилось только описание, файл readme.txt): http://www.one.com.ua/dm/download/dmtest_plugin.zip
Может быть разработчики помогу все-таки?
Меня интересует документация на файлы .DMF и .DMFr.
Также интересно каким образом можно сделать так, чтобы качались только определенные заданные диапазоны байт.
Я, если надо, без плагина обойдусь - сделаю патчер файлов-проектов, который будет делать то, что нужно.
Меня интересует документация на файлы .DMF и .DMFr.
Также интересно каким образом можно сделать так, чтобы качались только определенные заданные диапазоны байт.
Я, если надо, без плагина обойдусь - сделаю патчер файлов-проектов, который будет делать то, что нужно.
Наковырял тут только что формат служебных данных 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)
Мэнеджер закачки файла.
Программа (плагин, или ещё что то) дающая возможность грузить один и тот же файл кажой проге из сетей доступных ей.
Хранит всю инфу о файле TTH, SHA1, имя, зеркала ну и соответственно размер.
Программа принимает от других загруженные части и пишет в файл.
Сообщает другим подключенным прогам о новых загруженных частях.
Выдает загруженные части по запросу.
Такая штука избавит от надобности писать километры кода для поддержки разных сетей и даст возможность разным прогам действовать совместно (Даже однопрофильным).
Я бы хотел ей объеденить DM (Хороший груз в несколько потоков), Shareaza (Объединение сетей BitTorrent, eDonkey 2000, Gnutella1 и 2), ApexDC++ (Доступ в сети Dirrect Connect).
Хранит всю инфу о файле TTH, SHA1, имя, зеркала ну и соответственно размер.
Программа принимает от других загруженные части и пишет в файл.
Сообщает другим подключенным прогам о новых загруженных частях.
Выдает загруженные части по запросу.
Такая штука избавит от надобности писать километры кода для поддержки разных сетей и даст возможность разным прогам действовать совместно (Даже однопрофильным).
Я бы хотел ей объеденить DM (Хороший груз в несколько потоков), Shareaza (Объединение сетей BitTorrent, eDonkey 2000, Gnutella1 и 2), ApexDC++ (Доступ в сети Dirrect Connect).