Pull to refresh

LiveDC — Быстрый доступ к p2p файлам

Reading time 2 min
Views 15K
Сегодня существует большое количество DC-клиентов на самый разный вкус. Однако все они наделены существенным недостатком: нужно ждать, пока скачиваемый файл полностью загрузится. А если вы желаете посмотреть фильм или новый эпизод любимого сериала в высоком качестве, то даже при скорости интернета 100 Мбит/с ждать придется довольно долго. Но ведь хочется-то сейчас!




Актуальность

Допустим, мы хотим посмотреть фильм. Обычно, для этого его нужно скачать. Но ведь для просмотра нам нужен лишь небольшой конкретный участок файла. Так зачем ждать, пока он загрузится целиком?!

Так и появился на свет LiveDC. Я постарался убрать все лишнее из процесса потребления контента p2p. Клиент сам выберет куда скачать файл и предоставит к нему доступ так скоро, как это возможно.

Механизм работы

Клиент создает в системе виртуальный «жесткий диск», на котором находятся файлы из p2p сети. Это позволяет предоставить доступ к файлу до окончания его загрузки в систему. Приложения и система видят обычный файл, а все запросы к нему проходят через DC клиент. Если данные уже загружены, они передаются в ответ, в противном случае клиент устанавливает высокий приоритет запрошенного сегмента и ожидает, пока тот не будет загружен.

Тип файла не имеет значения. Например, можно примонтировать образ и начать установку программы или игры, пока он еще загружается.

За работу с виртуальным диском отвечает библиотека Dokan. Она предоставляет драйвер для файловой системы, а также оболочку для его использования из-под .NET

Функционал DC представлен моей библиотекой SharpDC. О ней, если будет интересно, смогу рассказать в следующих статьях.

Интерфейс

Программа рассчитана на работу с каталогами магнет-ссылок. После запуска программа будет перехватывать ссылки вида magnet: из браузера.

Как таковой интерфейс клиента практически отсутствует.
Основное окно появляется при нажатии на пиктограмму в области уведомлений.



Здесь находятся 3 последних добавленных файла. Кроме того здесь можно перейти в настройки или открыть поиск по хабу. Да, пользователи DropBox заметят кое-что знакомое.

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

При запуске LiveDC начинает обрабатывать магнет-ссылки и создает виртуальный диск (L:\), где можно найти все файлы, когда-либо открытые через клиент. Три последних файла становятся видны при нажатии на значок программы в области уведомлений.

После нажатия на магнет-ссылку появляется окно:



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

В качестве заключения

Программа написана на C# в Visual Studio 2012.
Разработка программы ведется в качестве хобби. На данный момент клиент находится в статусе «beta». Так как программа использует драйвер, при возникновении ошибки не исключен BSOD. Cохраняйте важные документы перед использованием.
Скачать (1,9 Мб)

Всё, что я хотел сделать «для себя», в программе реализовано. Очень интересно услышать ваше мнение о продукте. Стоит ли развивать LiveDC дальше и «обвешивать» его функциями?
Tags:
Hubs:
+28
Comments 56
Comments Comments 56

Articles