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-диаграмму.


 

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

42187. ИССЛЕДОВАНИЕ ТРЕХФАЗНОЙ ЦЕПИ С ПРИЕМНИКАМИ, СОЕДИНЕННЫМИ ТРЕУГОЛЬНИКОМ 296.5 KB
  Положительные направления токов в фазах треугольника принято обозначать по часовой стрелке т. Они будут равны геометрической разности соответствующих фазных токов: 11.2 показаны векторная топографическая диаграмма напряжений и векторная диаграмма токов для симметричной активной нагрузки. Векторная топографическая диаграмма напряжений и векторная диаграмма токов для симметричной активной нагрузки соединенной треугольником.
42188. ИССЛЕДОВАНИЕ АПЕРИОДИЧЕСКОГО И КОЛЕБАТЕЛЬНОГО РАЗРЯДОВ КОНДЕНСАТОРА 325.5 KB
  Исследование процесса разряда конденсатора на активное сопротивление. Определение влияния на разряд конденсатора значения активного сопротивления. Опытное определение величины емкости конденсатора по осциллограмме. Исследование колебательного разряда конденсатора.
42189. ИССЛЕДОВАНИЕ ЭЛЕКТРИЧЕСКОЙ ЦЕПИ С НЕСИНУСОИДАЛЬНЫМИ НАПРЯЖЕНИЯМИ И ТОКАМИ 185 KB
  Разложение несинусоидальной кривой графо-аналитическим способом в ряд Фурье и определение коэффициентов характеризующих несинусоидальную кривую. Определение влияния характера цепи R; RL; RC на форму кривой несинусоидального тока при подключении ее к источнику несинусоидального напряжения. Определение ординат несинусоидальной кривой в m дискретных точках.10 Затем находят соответствующие ординаты кривой f1ωt; f2ωt; f3ωt и заменяют интегралы...
42191. Принцип работы волоконно-оптического датчика (ВОД) магнитного поля и электрического тока 862 KB
  Однако применение различных ВОД электромагнитных полей сдерживается наличием у них относительно высокой чувствительности коэффициента преобразования датчика к температуре обусловленной температурным дрейфом характеристик вещества чувствительного элемента. Чувствительность ВОД к магнитному полю и электрическому току определяется коэффициентом преобразования чувствительного элемента ЧЭ который пропорционален углу Фарадея . Однако увеличение L в Bi12SiO20 может привести к проявлению влияния ряда нелинейных эффектов на магнитооптическую...
42192. Моделирование процесса измерения основных параметров волоконно-оптических трасс по рефлектометрическим данным 291.5 KB
  Если среда в которой распространяется импульс в данном случае оптическое волокно содержит неоднородности то на рефлектограмме появятся изломы и всплески. Как было сказано выше если неоднородности в волокне отсутствуют то рефлектограмма будет представлять из себя прямую с некоторым наклоном. Ступеньки говорит о наличии неоднородности на которой происходит поглощение мощности светового импульса1. Обычно такие неоднородности наблюдаются в местах сварки оптических волокон.
42193. Электрическая цепь с одним источником питания и смешанным соединением элементов 130 KB
  Основные теоретические положения Основными элементами любой электрической цепи являются: а источники электрической энергии электромашинные генераторы аккумуляторные батареи термоэлементы и т. С помощью закона Ома описывается связь между током напряжением и сопротивлением заданного участка цепи . Согласно 1му закону Кирхгофа алгебраическая сумма токов сходящихся в любом узле цепи равна нулю т. Так как при параллельном соединении все элементы находятся под одним и тем же напряжением то используя закон Ома это уравнение можно...
42194. Вимірювання опорів на постійному струмі 115 KB
  Ознайомлення з основними видами та методами вимірювання активних електричних опорів на постійному струмі. Дослідження методичних похибок основних методів вимірювання опорів та шляхи їх усунення. Завдання на вимірювання опорів кожен студент одержує від викладача.
42195. Калібрування і повірка засобів вимірювання тиску 86 KB
  1 Мета роботи Ознайомитись з будовою і принципом дії технічних засобів для вимірювання тиску. Набути практичних навиків при повірці і калібруванні систем вимірювання тиску.2 Програма роботи Під час заняття студент повинен самостійно ознайомитись з будовою і принципом дії технічних засобів які використовуються в системах для вимірювання тиску.