Простой сервер и файловый клиент с консольным интерфейсом, который позволяет:
- получить список файлов с сервера
- скачать файл с сервера
Есть возможность использования нескольких TCP соединений одновременно для передачи файла. Это позволяет в некторых случаях увеличить скорость передачи за счёт использования большей части пропускной способности, однако по умолчанию используется одно соединение.
Склонировать репозиторий
Запустить сборку:
user@pc:~$ make
В результате будет создано 2 программы в папке bin
Запуск сервера:
user@pc:~$ cd bin/server
user@pc:~$ ./example_server
Server started
...
Запуск клиента:
user@pc:~$ cd bin/client
user@pc:~$ ./example_client
>
...
Полный список комманд может быть получен с использование команды help
. Сервер отображает файлы, находящиеся в той же директории, что и исполняемый файл
> connect 127.0.0.1 9600
Connected
> list
"./test.txt"
"./m.png"
> get test.txt
Download completed in 19 ms
...
Файл Exchange_Protocol.md
содержит описание протокола работы получения файлов.
- использовать
<filesystem>
вместо<experimental/filesystem>
с новыйм стандартом - тесты
- таймаут на ожидание при подключении
- поддержка DNS
- не создавать поток на каждого клиента, а использовать какой-нибудь другой способ диспетчеризации
- загрузка конфигурации из файла
- добавить возможность остановки сервера
- аутентификация