Спецификация

advertisement
Спецификация
Задание: Реализовать простую пиринговую локальную сеть. Возможность передавать файлы.
Язык программирования – С\С++.
Кроссплатформенность: Qt + Boost.Asio
Наличие GUI: Qt Designer.
Основные функции программы:
1. Прямая передача файла(один к одному)
2. Торрент-подобная передача файла(много к одному либо один ко многим)
3. Поддержка torrent-файлов либо torrent-подобных файлов(с указанием передаваемого файла,
его хэша и основного хоста).
4. Докачка файлов
5. Мультипоточность программы.
6. По возможности ориентироваться не на локальную сеть, а на всю интернетсеть(широковещательные UDP-запросы)
7. Определение ширины канала и возможность ограничивать раздачи по скорости.
Возможные дополнительные функции программы:
1. Сбор мета-информации о файлах на каждой машине(где установлена программа). Т.е.
индексирование файлов в БД со всевозможными дополнительными данными (например, для
mp3 файла – продолжительность воспроизведения, качество, исполнитель, альбом,
композиция и т.д.). Необходимо для п.2
2. Поиск файлов на всех машинах, на которых установлена программа. Совместно с п.1
3. Динамическое воспроизведение файлов(аудио, видео) – при наличии достаточного канала
воспроизводить файл прямо в результатах поиска, либо по мере его закачки.
4. Сжатие файлов при передаче (целесообразно сжимать текстовые и бинарные файлы)
5. Шифрование файлов
6. Контакт-лист (помимо списка раздач сделать список контактов – машин, с которыми связь
уже была установлена)
7. Чат (при наличии контакт-листа, п.6). Простейший, основной упор – передача файлов в нем и
простые текстовые сообщения.
Related documents
Download