Лабораторная 4. Сетевое взаимодействие в ОС Linux. Работа с потоками в ОС Linux. Реализация RPC в проекте «LiteSH»
Группа: ис-841
Перов Артем
Шамбуров Михаил
Язык программирования: С++
Требования
- Необходимо разработать протокол для взаимодействия между клиентом и сервером на базе TCP/IP стека (выбор транспортного протокола остается за командой)
- Проект должен обязательно содержать следующий функционал:
- На стороне клиента:
- Подключение к сетевому интерфейсу;
- Отправка команд на серверное приложение;
- Получение и отображение результата выполнения.
- На стороне сервера (основной проект)
- Предоставление сетевого интерфейса для подключения;
- Обработка приходящих команд: выполнение, отправка результата;
- Вся работа с сетью должна происходить в отдельном потоке, основной пользователь не должен знать о том, что его ПО выполняется какие-либо дополнительные процессы.
- На стороне клиента:
Группа: ис-841
Перов Артем
Шамбуров Михаил
Язык программирования: С++
Требования
- В проекте должен обрабатываться аргумент "--help|-h" для вывода справки, в которой отображаются:
- Авторы;
- Все доступные аргументы;
- Краткое описание проекта;
- Примеры запуска.
- Сборка проекта осуществляется с помощью Make/CMake
- Проект должен обязательно содержать следующий функционал:
- Строку ввода команд для вызова проекта из Лабораторной 2
- Уметь порождать процесс по его имени и возвращаться в строку ввода команд после завершения дочернего процесса;
- Возможность перевести запускаемый процесс в фоновый режим;
- Получать и обрабатывать сигналы от внешних программ и операционной системы.
Требования:
- В проекте должен обрабатываться аргумент "--help|-h" для вывода справки, в которой отображаются:
- Авторы;
- Все доступные аргументы;
- Краткое описание проекта;
- Примеры запуска.
- Сборка проекта осуществляется с помощью Make/CMake
- Нельзя использовать встроенные в Linux программы
- Проект должен обязательно содержать следующий функционал:
- Перемещение файла;
- Копирование файла;
- Удаление файла;
- Подсчет общего размера указанной директории или файла;
- Отображение всех файлов в указанной директории;
- Отображение всех процессов из файловой системы procfs.
Требования:
- В проекте должен обрабатываться аргумент "--help|-h" для вывода справки, в которой отображаются:
- Авторы;
- Все доступные аргументы;
- Краткое описание проекта;
- Примеры запуска.
- Проект обязательно должен содержать следующий функционал (на хорошо):
- Вывод всех сетевых интерфейсов;
- Включение/отключение заданных интерфейсов (в т.ч. сразу нескольких);
- Установка IP/Mask/Gateway для определенного интерфейса.
- Проект должен содержать два или более любых возможностей (на отлично):
- Убийство процесса по занимаемому порту;
- Отключение сетевого интерфейса по шаблону ip;
- Построение карты сети;
- Отображение сетевой статистики.