Сегодня существует большое количество DC-клиентов на самый разный вкус. Однако все они наделены существенным недостатком: нужно ждать, пока скачиваемый файл полностью загрузится. А если вы желаете посмотреть фильм или новый эпизод любимого сериала в высоком качестве, то даже при скорости интернета 100 Мбит/с ждать придется довольно долго. Но ведь хочется-то сейчас!
Актуальность
Допустим, мы хотим посмотреть фильм. Обычно, для этого его нужно скачать. Но ведь для просмотра нам нужен лишь небольшой конкретный участок файла. Так зачем ждать, пока он загрузится целиком?!
Так и появился на свет LiveDC. Я постарался убрать все лишнее из процесса потребления контента p2p. Клиент сам выберет куда скачать файл и предоставит к нему доступ так скоро, как это возможно.
Механизм работы
Клиент создает в системе виртуальный «жесткий диск», на котором находятся файлы из p2p сети. Это позволяет предоставить доступ к файлу до окончания его загрузки в систему. Приложения и система видят обычный файл, а все запросы к нему проходят через DC клиент. Если данные уже загружены, они передаются в ответ, в противном случае клиент устанавливает высокий приоритет запрошенного сегмента и ожидает, пока тот не будет загружен.
Тип файла не имеет значения. Например, можно примонтировать образ и начать установку программы или игры, пока он еще загружается.
За работу с виртуальным диском отвечает библиотека Dokan. Она предоставляет драйвер для файловой системы, а также оболочку для его использования из под .NET
Функционал DC представлен моей библиотекой SharpDC. О ней, если будет интересно, смогу рассказать в следующих статьях.
Интерфейс
Программа рассчитана на работу с каталогами магнет-ссылок. После запуска программа будет перехватывать ссылки вида magnet: из браузера.
Как таковой интерфейс клиента практически отсутствует.
Основное окно появляется при нажатии на пиктограмму в области уведомлений.
Здесь находятся 3 последних добавленных файла. Кроме того здесь можно перейти в настройки или открыть поиск по хабу. Да, пользователи DropBox заметят кое-что знакомое.
В качестве заключения
Программа написана на C# в Visual Studio 2012.
Разработка программы ведется в качестве хобби. На данный момент клиент находится в статусе «beta». Так как программа использует драйвер, при возникновении ошибки не исключен BSOD. Cохраняйте важные документы перед использованием.
Скачать (1,9 Мб)
Всё, что я хотел сделать «для себя», в программе реализовано. Очень интересно услышать ваше мнение о продукте. Стоит ли развивать LiveDC дальше и «обвешивать» его функциями?
Автор: Erty_Hackward