Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МетУказКурсРабСистемПрогрЗИЭИТ2005.doc
Скачиваний:
6
Добавлен:
13.09.2019
Размер:
698.37 Кб
Скачать

Тема 17. Простая почтовая программа на основе протокола smtp.

Техническое задание.

Разработать простую почтовую программу.

Методические указания.

Использование сокетов (асинхроная работа). Работа с SMTP сервером, сценарий отправки e-mail. Создание простого GUI на API.

Работа с сокетами на уровне WinSock API описана в Приложении 1.

Коммуникационная модель SMTP описана в документах RFC 821, RFC 822, RFC 1651.

Основные команды SMTP приводятся в Приложении 3.

Формат заголовков SMTP приводится в Приложении 4.

Тема 18. Ftp - клиент.

Техническое задание.

Программный продукт должен быть реализован с использованием WinSock API, соединение устанавливается на портах 20 и 21 протокола ТСР. Среда разработки VC++. Реализации подлежат основные команды протокола FTP, которые дадут возможность взаимодействия с одной из стандартных программ FTP-сервер.

Методические указания.

Ориентировочный алгоритм работы клиента FTP:

  1. Осуществляет подключение к серверу FTP

  2. Получает приветствие от сервера

  3. Отправляет сообщение USER с указанным идентификатором ID пользователя серверу и ожидает ответа.

  4. При получении ответа на команду USER отправляет команду PASS с указанным паролем.

  5. При получении положительного ответа на команду PASS запрашивает имя и путь текущего каталога, отправляя команду PWD на сервер.

  6. Получив ответ на команду PWD, выполняет синтаксический разбор, для того, чтобы определить каталог и путь ответного сообщения, и отображает его для пользователя. Для отображения у пользователя содержимого каталога необходимо подготовиться к приему списка каталогов. Клиент выдает команду TYPE, указывающую тип передачи данных ASCII.

  7. Получив ответ на команду TYPE , сервер переходит в пассивный режим, чтобы клиент мог инициализировать соединение данных. Для этого приложение выдает команду PASV.

  8. При получении ответа на команду PASV выполняется синтаксический анализ ответного сообщения для извлечения адреса TCP/IР и порта службы для использования. Клиент использует этот адрес и порт при соединении и создании гнезда данных клиента.

  9. После создания гнезда данных и подсоединения его к адресу, указанному в ответе на команду PASV, отправляет команду LIST, для того чтобы получить список каталогов от сервера.

  10. Когда гнездо данных получает список каталогов, добавляет полученный текст в окно списка, в котором отображен список для пользователя.

  11. Получив положительное завершение списка каталогов, переходит в режим ожидания, пока пользователь выберет операцию для выполнения.

  12. Если пользователь выполняет двойной щелчок на списке каталогов от сервера FTP, то он изучает выбранную строку, для того чтобы определить, выбран каталог или файл. Если пользователь выбрал каталог, клиент отправляет серверу команду CWD с каталогом, в который осуществляется перемещение. Получив положительный ответ от команды CWD, клиент повторяет предыдущие действия, начиная с действия 5 (выдача команды PWD серверу)

  13. Если пользователь выбирает файл, начинает отправлять последова­тельность команд серверу для подготовки к извлечению выбранного файла. Первое из указанных действий предусматривает отправление команды TYPE серверу с указанием типа данных Image, после чего выполняется отправление команды PASV серверу.

После перехода сервера в пассивное состояние и соединения гнезда данных клиент отправляет команду RETR с указанием файла для извлечения.

При получении предварительного ответа от команды RETR клиент вводит на хранение в указанный файл все полученные данные.

При получении всего файла клиент закрывает файл и гнездо данных и возвращается в режим ожидания.

  1. Если пользователь выбирает файл для отправления серверу, то он выполняет практически те же действия, что и при извлечении файла. Вместо отправления команды RETR клиент отправляет команду STOR на сервер.

Получив предварительный ответ на команду STOR, клиент открывает выбранный файл и отправляет его по соединению гнезда данных.

После отправления всего файла клиент закрывает соединение данных и возвращается в режим ожидания.

  1. Если пользователь щелкает на кнопке Quit, то он отправляет команду Quit серверу.

  2. Получив команду Quit, сервер закрывает соединение.

Работа с сокетами на уровне WinSock API описана в Приложении 1.

Коммуникационная модель FTP описана в документе RFC 959.

Основные команды FTP приводятся в Приложении 2.