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

7 чел.

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

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

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

ЛАБОРАТОРНАЯ РАБОТА №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-диаграмму.


 

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

9870. Формы собственности на землю в России 9-17 век особенности крепостного права 29.81 KB
  Формы собственности на землю в России 9-17 век особенности крепостного права. В IX-XII веках экономику Древнерусского государства можно охарактеризовать как раннефеодальную. В это время еще только закладываются основы прочной системы взаимоотношений...
9871. Понятие о скважине, ее элементах и параметрах, характеризующих пространственное положение ствола 15.35 KB
  Понятие о скважине, ее элементах и параметрах, характеризующих пространственное положение ствола. Скважина - это горная выработка приблизительно имеющая форму цилиндра. Может быть длиной до...
9872. Свойства бурового раствора, порядок их определения 15.9 KB
  Свойства бурового раствора, порядок их определения. Основные параметры, которые характеризуют свойство БР относятся: плотность, условная вязкость, показатель фильтрации, СНС, толщины глинистой корки, содержание песка, содержание водородных ионов. 1....
9873. Профили наклонно-направленных скважин. Предельно допустимые темпы искривления 15.19 KB
  Профили наклонно-направленных скважин. Предельно допустимые темпы искривления. Направленной называют скважину, которую бурили вдоль запроектированной пространственной трассы и попали в заданную цель, а ее забой и фильтровая зона не только располагаю...
9874. Способы ликвидации прихватов бурильных колонн 18.81 KB
  Способы ликвидации прихватов бурильных колонн. 1)Расхаживание и отбивка ротора. Расхаживание - способ ликвидации прихвата, прикотором к БИ прикладывается нагрузка на какое-то значение превышающая его вес (буровик может превышать нагрузку...
9875. Буровые растворы на водной основе, область их использования 16.27 KB
  Буровые растворы на водной основе, область их использования. Вода: В результате использования технической и морской воды вместо глинистого раствора проходка на долото повышается на 15-20%, а механическая скорость проходки повышается 25-40%. Вода как...
9876. Растворы на неводной (УВ) основе. Область их применения 15.43 KB
  Растворы на неводной (УВ) основе. Область их применения. В целях сохранения коллекторских свойств пластов и предупреждения осложнений при бурении стали применять БР на нефтяной основе. Они предназначены для вскрытия и освоения продуктивных пластов и...
9877. Долота режущего режуще-истирающего типа 19.19 KB
  Долота режущего режуще-истирающего типа 1)Пилообразные однолопастное долото. Существует два типа таких долот: Ц и Р. Используется для расширения и проработки скважины, как правило в не очень твердых породах. 2)Двух лопастное долото, обозначается 2Л ...
9878. Конструкция шарошечных долот. Правила эксплуатации и отработка 19.04 KB
  Конструкция шарошечных долот. Правила эксплуатации и отработка. Изобретение шарошечного долота внесло переворот во вращательное бурение. Это наиболее применяемый тип долот при бурении сплошным забоем. Отличается от других типов долот следующим: 1)Ме...