2. Написать скелет программы-клиента и программы-сервера. Клиент должен уметь устанавливать соединение, причем адрес узла, с которым надлежит соединиться, должен задаваться пользователем (адрес может быть задан как в виде доменного имени, так и в виде непосредственно IP-номера). Сервер должен уметть подгатавливать сокет для прослушивания сети и принимать соединение от клиентов.
3. Изучить какой-либо из распространенных протоколов прикладного уровня.
4. Изучить возможные способы организации мультиплексирования ввода-вывода в Unix-подобных ОС.
5. В соответствии с изученным протоколом разработать и написать программу-сервер и программу-клиент (по вариантам). Проверить работоспособность созданной программной системы. Для проверки клиента/сервера, реализующего один из распространенных протоколов, использовать в качестве удаленной стороны стандартные сервер/клиент.
Варианты: I. последовательный сервер II. параллельность на основе многопроцессного подхода III. паралленльность на основе неблокирующего ввода/вывода IV. паралленльность на основе использования select() V. паралленльность на основе использования poll() VI. паралленльность на основе использования механизмов сигналов
на выбор: SMTP – II, VII POP3 – VI, VII IMAP – III, IV, V, VI, VII FTP – I, III, IV, V, VI, VII HTTP – III, VI, VII TELNET – I, II, III, V, VI, VII DNS – I, II, III, IV, VI, VII СЛОВАРЬ – II, III, IV, V, VI, VII ИГРА – II, III, IV, V, VI, VII СУБД – III, V, VI, VII IMS – III, IV, V, VI, VII FS – II, III, IV, V, VI, VII Calc – II, III, IV, VI, VII Shell – II, III, IV, V, VI, VII