Skip to content

Mvwivs/file-server-client

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

File Server and Client

Описание

Простой сервер и файловый клиент с консольным интерфейсом, который позволяет:

  • получить список файлов с сервера
  • скачать файл с сервера

Есть возможность использования нескольких 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
  • не создавать поток на каждого клиента, а использовать какой-нибудь другой способ диспетчеризации
  • загрузка конфигурации из файла
  • добавить возможность остановки сервера
  • аутентификация

About

File client and server

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published