20986

ВЗАИМОДЕЙСТВИЕ ПРИКЛАДНЫХ ПРОГРАММ С ПОМОЩЬЮ ПРОТОКОЛОВ ЭЛЕКТРОННОЙ ПОЧТЫ И ПРОТОКОЛОВ ПРИКЛАДНОГО УРОВНЯ

Лабораторная работа

Информатика, кибернетика и программирование

None; } } ФУНКЦИИ ПРИЕМА ОТВЕТА ОТ СЕРВЕРА protected string Receive { string reply = ; byte[] buffer = new byte[1024]; int ret = socket.Receivebuffer; while ret 0 { reply = Encoding.GetStringbuffer 0 ret; if IsCompletereply break; ret = socket.Receivebuffer; } return reply; } protected bool IsCompletestring reply { string[] parts = reply.

Русский

2013-08-02

353.5 KB

8 чел.

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ

ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

УФИМСКИЙ ГОСУДАРСТВЕННЫЙ АВИАЦИОННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

ЛАБОРАТОРНАЯ РАБОТА №2

ПО ДИСЦИПЛИНЕ «СЕТИ ЭВМ»

ТЕМА РАБОТЫ «ВЗАИМОДЕЙСТВИЕ ПРИКЛАДНЫХ ПРОГРАММ С ПОМОЩЬЮ ПРОТОКОЛОВ ЭЛЕКТРОННОЙ ПОЧТЫ И ПРОТОКОЛОВ ПРИКЛАДНОГО УРОВНЯ»

 

 

Выполнили

студенты группы ИВТПО-431т

Исламов Р.Р.

Рахмангулов А.М.

Салямов Д.И.

Проверила

Муслимова Г.Р.

Уфа 2011

ЦЕЛЬ РАБОТЫ:

Изучение принципов работы протоколов электронной почты, разработка прикладных программ, осуществляющих взаимодействие и передачу данных друг другу на основе прикладных протоколов.

ПОСТАНОВКА ЗАДАЧИ

Необходимо реализовать SMTP клиент. Клиент должен связываться с удаленным SMTP сервером при помощи сокетов. У клиента должна быть возможность задания всех необходимых для соединения параметров подключения к серверу, таких как IP-адрес и порт. После соединения с сервером клиент должен реализовать стандартные команды протокола SMTP для авторизации и отправки письма.

Рис. 1 – Модель SMTP клиента


ДЕКОМОЗИЦИЯ ЗАДАЧИ

Рис. 2 – Декомпозиция клиента и сервера

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


ОБОСНОВАНИЕ ВЫБОРА СРЕДЫ ПРОГРАММИРОВАНИЯ

Для разработки данного приложения был выбран язык С#. Это связано в первую очередь с тем, что C# создан именно как язык для разработки серверных приложений, поэтому разработка клиент-сервера на нем достаточна проста и процесс разработки способствует быстрому пониманию способов и методов реализации задач данного типа, что достаточно важно для студента. С# имеет встроенную библиотеку сокетов. Так же, являясь, объектно-ориентированным языком, позволяет быстро и просто реализовать приложение основанное на принципах ООП, в отличии, к примеру, от C++, где использование объектно-ориентированного подхода требует больших затрат времени и умственных усилий.


ОПИСАНИЕ АЛГОРИТМА ВЗАИМОДЕЙСТВИЯ

Диаграмма классов

 

Рис. 3 – Диаграмма классов

Диаграмма взаимодействий

 

Рис. 4 – Диаграмма взаимодействий

РУКОВОДСТВО ПРОГРАММИСТА

УСТАНОВКА СОЕДИНЕНИЯ

socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);                

               socket.Connect(new IPEndPoint(Dns.GetHostEntry(server).AddressList[0], int.Parse(port))); 

ФУНКЦИЯ ОТПРАВКИ КОМАНДЫ СЕРВЕРУ

protected void Send(string data)

       {

           Console.WriteLine("Client:  " + data.TrimEnd());

           byte[] toSend = Encoding.ASCII.GetBytes(data);

           int sent = socket.Send(toSend);

           while (sent != toSend.Length)

           {

               sent += socket.Send(toSend, sent, toSend.Length - sent, SocketFlags.None);

           }

} 

ФУНКЦИИ ПРИЕМА ОТВЕТА ОТ СЕРВЕРА

protected string Receive()

       {

           string reply = "";

           byte[] buffer = new byte[1024];

           int ret = socket.Receive(buffer);

           while (ret > 0)

           {

               reply += Encoding.ASCII.GetString(buffer, 0, ret);

               if (IsComplete(reply))

                   break;

               ret = socket.Receive(buffer);

           }

           return reply;

       } 

protected bool IsComplete(string reply)

       {

           string[] parts = reply.Replace("\r\n", "\n").Split('\n');

           if (parts.Length > 1 && ((parts[parts.Length - 2].Length > 3 && parts[parts.Length - 2].Substring(3, 1).Equals(" ")) || (parts[parts.Length - 2].Length == 3)))

               return true;

           else

               return false;

       } 

ПРОВЕРКА СТАТУСА ПРИСЛАННОГО СЕРВЕРОМ

protected bool IsReplyOK(string reply)

       {

           Console.Write("Server:  " + reply);

           try

           {

               int replyNumber = Int32.Parse(reply.Substring(0, 3)) / 100;

if (replyNumber == 2 || replyNumber == 3)                        return true;

           }

           catch { }

           return false;

       }
РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ

Работа с клиентом

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

Рис. 5 – Работа SMTP клиента


ВЫВОД ПО ПРОДЕЛАННОЙ РАБОТЕ

В процессе выполнения работы изучили протокол SMTP и его основные команды, научились работать с сокетами, научились строить модели в CASE-средстве BPwin, научились строить UML-диаграмму.


 

А также другие работы, которые могут Вас заинтересовать

11555. Оценка результатов инновационной деятельности ООО «Пансионат Заручевье» 87.2 KB
  Определить сущность понятия эффективности результатов инновационной деятельности; изучить показатели, применяемые для оценки результатов инновационной деятельности; проанализировать результаты инновационной деятельности конкретного хозяйствующего субъекта; дать предложения по совершенствованию инновационной деятельности исследуемого хозяйствующего субъекта.
11556. Освоить методику хранения данных программ в массивах и научиться использовать массивы при решении практических задач 43 KB
  Лабораторная работа № 5. Массивы Цель работы: Освоить методику хранения данных программ в массивах и научиться использовать массивы при решении практических задач. Использовать задание из лабораторной работы № 4 Операторы циклов но числа вводимые пользователем...
11557. Изучить синтаксис операторов цикла и получить навыки их использования в программах 40.5 KB
  Операторы циклов Цель работы: Изучить синтаксис операторов цикла и получить навыки их использования в программах. Содержание работы. 1 Дана произвольной длины последовательность целых чисел. Найти сумму неотрицательных чисел наибольшее из таких чисел и номер этог
11558. Научиться создавать и применять функции и процедуры, освоить методы передачи параметров 40 KB
  Процедуры и функции Цель работы: Научиться создавать и применять функции и процедуры освоить методы передачи параметров. 1Текст задания Задание: Для условий лабораторной работы № 3 Условные операторы Задание А и Задание Б выполнить следующие требования: 1 Зада...
11559. Переменные. Операторы. Встроенные функции 23.5 KB
  Переменные. Операторы. Встроенные функции Цель работы: Изучить типы данных VB и научиться использовать их в переменных и массивах. Получить навыки использования операторов и встроенных функций VB. 1. 1 строка S c символом ASCIIкод которого выбирается случайным образом и
11560. Исследование автономного LC-генератора 287.5 KB
  ЛАБОРАТОРНАЯ РАБОТА №3 Исследование автономного LC-генератора ЦЕЛЬ РАБОТЫ: теоретические и экспериментальные исследования автономного LC-генератора. РАБОТА СОДЕРЖИТ СЛЕДУЮЩИЕ РАЗДЕЛЫ : 1. Изучение теории автономного...
11561. Синхронизируемый LC-автогенератор 359 KB
  ЛАБОРАТОРНАЯ РАБОТА № 4 Синхронизируемый LC-автогенератор ЦЕЛЬ РАБОТЫ: теоретические и экспериментальные исследования процессов протекающих в автогенераторе при наличии внешнего гармонического воздействия. РАБОТА СОДЕРЖИТ СЛЕДУЮЩИЕ РАЗДЕЛЫ: 1. Изучение теории н...
11562. Фазовая автоподстройка частоты 212.5 KB
  Лабораторная работа № 5 Фазовая автоподстройка частоты Оглавление. Предисловие. Содержание учебного пособия соответствует программе курса Устройства приема и обработки сигналов предусмотренного государственным образовательным стандарт...
11563. Решение прямой и обратной задач магниторазведки для шара 223.5 KB
  Лабораторная работа № 1 по дисциплине Полевая геофизика Тема: Решение прямой и обратной задач магниторазведки для шара Цель работы: Вычислить значенияZa и Ha компонент магнитного поля для вертикально намагниченного шара а так же определить параметры шарооб