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


 

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

44625. Государство и право Франков (VI – IX вв.) 86.5 KB
  Государственный строй Салическая правда Основные понятия Аллод Наследственная свободно отчуждаемая земельная собственность в раннефеодальных государствах свободная от повинностей. Иммунитет Привилегии крупных земельных собственников в феодальных государствах Европы в период средневековья. Создал раннефеодальную монархию государство с относительно сильной центральной властью издавал многочисленные капитулярии законы в целях укрепления государства. с его именем связано образование Франкского раннефеодального государства и...
44626. Государство и право Франции в Средние века 116.5 KB
  Баналитеты Заповедные обычные права сеньоров в феодальной Франции в силу которых на крестьян налагались дополнительные повинности например обязанность крестьян за плату установленную сеньором печь хлеб в господской печи и т. Во Франции вилланы имели некоторые права лично свободных. в Западной Европе которые главным образом комментировали толковали Свод гражданского права Юстиниана. Кутюмы Источники права сборники правовых обычаев провинций и городов на севере Франции.
44627. Государство и право Англии в Средние века 116.5 KB
  Государство и право Англии в Средние века План: Англосаксонская раннефеодальная монархия IXXI вв. Абсолютная монархия в Англии и ее отличие от французской монархии XVXVIII вв. в Англии считалась официально первым конституционным актом положила начало переходу к сословнопредставительной монархии XIIIXIX вв. Герцог Нормандии король Англии.
44628. Государство и право Германии в Средние века 96 KB
  Решал дела прежде всего на основании римского права. Оттона I расширил права церкви епископов и аббатов за счет герцогов князей. Он издал оттоновские привилегии по которым епископы и аббаты получали широкие Иммунитетные привилегии их владения освобождались от герцоговской юрисдикции а сами они получали права герцогов. Со временем они присвоили наследственные права.