Здравствуйте, гость ( Вход | Регистрация )
Дата поста: | В теме: | За сообщение: | Спасибо сказали: | ||
---|---|---|---|---|---|
10.9.2013, 13:14 |
Клиент: LiveDC Наверное, самый молодой из клиентов |
Antibiotic | |||
10.9.2013, 8:36 |
Клиент: LiveDC Наверное, самый молодой из клиентов |
Добрый день. Я хотел бы представить вам мою разработку: p2p-клиент LiveDC. Во время работы над проектом я хотел сделать что-то новое, а не еще один клон DC++. Я начал с нуля, взял самое необходимое и убрал все ненужное (на мой взгляд). Я считал и продолжаю считать что существующие клиенты слишком сложные для не-гиков. Поэтому я свел обязательную настройку к минимуму. В лучшем случае пользователю не потребуется вводить вообще ничего, в худшем клиент попросит ввести адрес хаба. Клиент самостоятельно определяет режим соединения (актив/пассив). Для этого он обращается к серверу, передавая ему свой tcp порт. Сервер пытается подключиться на порт к нему и возвращает результат клиенту. Псевдоним вида livedc(случайные буквы) генерируется автоматически. Клиент может сам определить адреса хабов при первом запуске. Для этого он определяет город, откуда запущен клиент. Затем запрашивает список хабов с сервера для этого города. Кроме того, при наличии настроенных клиентов FlyLink или StrongDС адреса хабов могут быть взяты там. По умолчанию, клиент выбирает самый свободный жесткий диск и загружает файл на него. Конечно же, в настройках можно указать куда именно загружать файлы. В планах добавить удаление старых загруженных файлов при недостатке свободного места. [attachment=6806:livedc.png][attachment=6807:livedc_starting.png] Интерфейс клиента предельно простой - значок в области уведомлений, при нажатии на который появляются 3 последних открытых файла. При нажатии на магнет-ссылку из браузера появляется диалог, сообщающий о текущем прогрессе открытия файла. Клиент начинает загрузку и как только загружен хотя бы один сегмент - предлагает пользователю открыть файл. По опыту, видео файл начинает проигрываться у меня где-то через 10-15 секунд после нажатия на магнет ссылку (при наличии источников). Работает это следующим образом - клиент создает виртуальный диск, на котором создает "видимость" наличия файла в системе. На самом деле все запросы к этому файлу проходят через клиент, который знает загружен ли запрашиваемый участок файла или нет. Если участок не загружен - он отмечается высоким приоритетом и будет загружен в ближайшее время. Пока сегмент не загружен отправка данных приостанавливается, плеер или любое другое системное приложение "висит" ожидая данных. Что мне особенно нравится, помимо просмотра сериалов, эта функция позволяет установить большую игру из образа к тому моменту как будет завершена закачка ее образа. Причем, если для установки не нужно загружать весь образ, она выполнится еще до окончания его загрузки. Независимо от того запрошен ли файл целиком или частично, клиент постарается скачать весь файл. Как только файл будет скачан он становится на раздачу. В клиенте отсутствует чат и список пользователей. Поэтому при подключении к хабу он его не запрашивает, снижая нагрузку на хаб. Разработал я его в первую очередь для себя - люблю простые и легкие вещи. Клиент реализован на основе моей библиотеки: Для создания виртуального диска используется библиотека Dokan. Программа бесплатная и чистая: нет рекламы, нет шпионских штучек. Написано на C# в Visual Studio 2012. При обнаружении бага Клиент пишет лог работы в папку %temp%\livedc-дата.log Если встретили некорректное поведение, прошу отправить лог мне на почту: hackward@gmail.com с описанием ошибки. Сайт: Трекер: Скачать дистрибутив можно здесь: PS. Вчера я закончил внедрение поддержки торрентов на базе MonoTorrent. Так что теперь клиент работает как с DC так и с торрентами. Очень интересно ваше мнение о проекте в целом, буду благодарен за помощь в тестировании. С удовольствием отвечу на любые вопросы. |
Nickolya, BIMMER71, Tsd, Ksan, Angel_D, HackFresse, rival, Damaks, KCAHDEP, мамин_парень | ||
|
Сейчас: 23.11.2024, 1:54 |