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


 

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

34972. Требования к бюджету 39.5 KB
  часто возникает ситуация когда доходы бюджета налоговые и неналоговые не покрывают все необходимые для соответствующего уровня бюджетной системы расходы. В мировой практике существуют следующие виды дефицита госбюджета: циклический дефицит спад деловой активности и сокращение налоговых поступлений. структурный дефицит положительное либо отрицательное сальдо бюджета при наличии естественного уровня безработицы при наличии естественного уровня ВВП при ставках налога и трансфертных платежей определенных законодательством. Источники...
34973. Теория и практика налогообложения 27 KB
  Субъект налога физическое или юридическое лицо которое согласно действующему законодательству обязано уплачивать налог. Объект налога доход или имущество с которого начисляется налог. Ставка налога размер налоговых начислений на единицу объекта налога. Пропорциональные ставки предполагают равное в процентном отношении обложение различных по своему денежному выражению объектов налога.
34974. Фискальная политика, ее цели и инструменты 24.5 KB
  Фискальная политика это политика регулирования правительством прежде всего совокупного спроса. Стимулирующая фискальная политика применяется при спаде имеет целью сокращение рецессионного разрыва выпуска и снижение уровня безработицы и направлена на увеличение совокупного спроса совокупных расходов. Сдерживающая фискальная политика используется при буме имеет целью сокращение инфляционного разрыва выпуска и снижение инфляции и направлена на сокращение совокупного спроса совокупных расходов.
34975. Факторы, обеспечивающие экономический рост 38 KB
  Краткосрочные колебания выпуска в научной литературе обычно относятся к теории деловых циклов и не являются предметом изучения для теории экономического роста. В отличие от экономического развития экономический рост количественный показатель. Экономический рост тесно связан с ростом общего благосостояния: ростом продолжительности жизни качества медицинского обслуживания уровня образования сокращением продолжительности рабочего дня и т.
34976. Теория сравнительных преимуществ 14.31 KB
  Внешнеторговый баланс страны соотношение стоимости товаров экспортированных и импортированных за один и тот же период времени. Внешнеторговый баланс включает фактически оплаченные и осуществленные в кредит товарные сделки. Внешнеторговый баланс составляется по отдельным странам и по группам государств. Торговый баланс имеет сальдо.
34977. НЕСТАБИЛЬНОСТЬ ГЛОБАЛЬНОЙ ЭКОНОМИКИ 25.5 KB
  Демографическая проблема порождена тем что во второй половине XX столетия начался демографический взрыв стремительный рост населения Земли. При этом возникла необычайная асимметрия в его динамике: 80 прироста мирового населения приходится на Азию Африку и Латинскую Америку. Быстрый рост населения в развивающихся странах вызывает ряд серьезных социальноэкономических осложнений. Здесь в национальных границах некоторых государств так быстро увеличивается численность населения что обнаруживаются признаки абсолютного перенаселения...
34978. Основные экономические проблемы общества 38 KB
  Что производить проблема выбора это принятие решений о том какие именно блага какого качества в каком количестве должны быть произведены. Как производить проблема эффективности это принятие решений о том с помощью каких ограниченных ресурсов и их комбинаций с помощью каких технологий будут произведены блага. Для кого производить проблема распределения это проблема связанная с распределением благ: кому достанутся произведенные блага и в каком количестве будет располагать ими экономический субъект. Количество созданных товаров...
34979. Экономика – особая сфера общественной жизни 28.5 KB
  Нормативная экономика это направление в экономической науке основанное на оценочных суждениях относительно того какой должна быть экономика цели экономического развития и экономическая политика. Позитивная экономика означает анализ фактов на основе которых формулируются принципы экономического поведения. Теоретическая экономика учит понимать сложный экономический мир вырабатывает экономический тип мышления.
34980. Функции экономической теории 31 KB
  Практическая рекомендации по совершенствованию текущей экономической ситуации снижению уровня инфляции увеличению валового национального продукта и т. ЭКОНОМИЧЕСКАЯ ПОЛИТИКА система методов инструментов и форм государственного воздействия на социальноэкономические процессы реализующая тот или иной тип экономической стратегии. Сложная структура развитой рыночной экономики требует применения разнообразных инструментов и мер экономической политики.