Разработать клиент-серверное приложение для ОС Debian 12, реализующее передачу выбранных клиентом файлов на сервер и сохранение переданных файлов сервером.
- Клиентская и cерверная части приложения должны быть разработаны с использованием языка Python версии 3.7+
- Исходники должны быть выложены на github.com с публичным доступом
- Сетевое подключение между клиентом и сервером должно быть реализовано с использованием библиотеки socket
- Клиент должен иметь возможность передать файл на Сервер. Указать файл для передачи и Сервер, на который следует передать файл, Клиент должен при помощи консольного интерфейса, например, при помощи флагов;
- Сервер должен иметь возможность сохранять переданные Клиентом файлы, директория для сохранения должна задаваться при помощи консольного интерфейса при запуске Сервера;
- Сервер должен должен хранить атрибуты файлов: имя и время добавления файла.
- Этап 1:
- Реализовать требования к клиент-серверной части приложения.
- Реализовать упаковку клиентской и серверной частей приложения в виде бинарных файлов.
- Этап 2:
- Реализовать графический интерфейс для Клиента. При помощи графического интерфейса Клиент должен иметь возможность выбрать для передачи Серверу произвольный файл. Консольный интерфейс должен быть сохранен. Рекомендуемая библиотека для реализации графического интерфейса - PyQT.
- Реализовать для Сервера возможность подключения нескольких Клиентов одновременно с использованием функций poll, epoll, select. Для каждой функции требуется обосновать её применение.
- Реализовать обработку ошибок передачи данных между Клиентом и Сервером, например, разрывы сетевого соединения.