logo search
cpp4_2008

Вариант 20 Сетевой сервер

Разработать приложение, позволяющее сетевому серверу организовать работу по передаче пакетов в сети. Все серверы в сети имеют сетевой адрес (IP-адрес, например, 194.67.66.175) и сетевое имя (www.mephi.ru). Информация о пакете некоторого типа (почта, файл или гипертекст) хранится в специальном описателе пакета.

Описатель пакета почты содержит следующую информацию: сетевые адреса отправителя и получателя; имя пользователя (строка до 20 символов); описатель сообщения.

Описатель пакета файла содержит следующую информацию: сетевые адреса отправителя и получателя; тип кода (ASCII или BIN) и тип информации (управляющая или данные); описатель сообщения (команды или данных);

Описатель пакета гипертекста содержит следующую информацию: сетевые адреса отправителя и получателя; тип кода (ASCII или BIN) и тип информации (управляющая или данные); описатель сообщения (команды или данных); количество ссылок и указатель на динамический массив описателей ссылок.

Описатель сообщения - длина сообщения и указатель на область размещения сообщения. Описатель ссылки – тип протокола (FTP или HTTP), сетевое имя сервера ссылки.

Информация обо всех пакетах сведена в очередь – «таблицу передач», каждый элемент которой содержит указатель на описатель пакета. Полная информация о сервере хранится в его описателе: собственное сетевое имя, сетевой адрес сервера и «таблицу передач».

Обеспечить выполнение следующих операций.