Написать на языке C две программы для POSIX-совместимой ОС:совместимой ОС: сервер, поддерживающий заданный вариантом тип многозадачности (Табл. 2), транспортный протокол (Табл. 3) и прикладной протокол (Табл. 4); клиент, поддерживающий заданный вариантом протокол и предназначенный для тестирования сервера. Программы должны представлять собой консольные утилиты, настройка работы которых осуществляется путем передачи аргументов в строке запуска и/или с помощью переменных окружения: lab2server [ опции ] lab2client [ опции ]

Тип многозадачности серверной программы определяется согласно варианту из Табл. 2 путем подсчета количества букв в фамилии студента, выполняющего лабораторную работу. Транспортный протокол, поддерживаемый серверной и клиентской программами, определяется согласно варианту из Табл. 3 путем подсчета количества букв в имени студента, выполняющего лабораторную работу. Прикладной протокол, поддерживаемый серверной и клиентской программами, определяется согласно номеру варианта из Табл. 4.

Серверная и клиентская программы должны поддерживать опции командной строки и переменные среды, перечисленные в Табл. 1 (расширение списка опций не запрещается). Серверная программа должна обрабатывать поступление сигналов SIGINT, SIGTERM и SIGQUIT и корректно завершать работу при их поступлении. Также должен обрабатываться сигнал SIGUSR1, при поступлении которого серверная программа должна выводить в лог и в стандартный поток ошибок накопленную статистику — время работы, количество успешно обслуженных запросов и количество запросов, выполнение которых привело к ошибкам.