You are on page 1of 5

Міністерство освіти та науки України

Харківський національний університет радіоелектроніки

Кафедра ЕОМ

Лабораторна робота №5
з дисципліни «Спеціальні розділи програмування на .NET»
на тему:
"ДОСЛІДЖЕННЯ ЗАСОБІВ .NET ЩО ДО РОБОТИ В МЕРЕЖІ"

Варіант 2

Виконав: Прийняв:
ст.гр. СПм-19-2 Федорченко В. М.
Слісаренко М.В.

Харків 2020
Мета роботи:

Придбання практичних навичок з мережного програмування у програмах мовою


С#.Удосконалювання навичок роботи в середовищі MS Visual Studio.

1.2 Хід роботи


https://github.com/KolyaSlisarenko/project/tree/main/CNLab5

1. В соответствии с вариантом создать сборку (*.dll), содержащую типы (тип)


описывающий заданную предметную область (допустимо использовать разработки
ЛР1,2):

Предметная область
варианта
2 Организация
(Сотрудники)

2. Розробити розподілене додаток клієнт-сервер, який призначений для:


- обміну довільними текстовими повідомленнями між клієнтом (об'єктом відповідної
предметної області) і сервером.
- * обміну довільними текстовими повідомленнями між декількома клієнтами
(об'єктами відповідної предметної області), які обслуговуються одним і тим же
сервером.
Функціональність програми повинна бути реалізована в декількох класах.
Для реалізації розподіленого взаємодії використовувати:
варіант 2 - UDP-сокети (* використовувати групову розсилку);

Так як дана програма одночасно виконує функцію і клієнта і сервера - потрібен


запуск в 2 примірниках із зазначенням портів передачі і прийому повідомлень.
3. Реалізувати взаємодія клієнта з Web-ресурсом, що забезпечує обмін даними в
форматі запит-відповідь по протоколу HTTP.
Для реалізації взаємодії використовувати:
варіант 2 - класи WebRequest і WebResponse;
було створено консольне ДОДАТОК Task2Web, яке отримує відомості про
найпростішому локальному web ресурсі SomeWebAppliation
static void Main(string[] args)
{
WebRequest request = WebRequest.Create("https://docs.microsoft.com/");
WebResponse response = request.GetResponse();
using (Stream stream = response.GetResponseStream())
{
using (StreamReader reader = new StreamReader(stream))
{
string line = "";
while ((line = reader.ReadLine()) != null)
{
Console.WriteLine(line);
}
}
}
response.Close();
Console.WriteLine("Запрос выполнен");
Console.Read();
}
4. Реалізувати взаємодія клієнта з Web-ресурсом (локальним ресурсом), що
забезпечує обмін даними в форматі запит-відповідь по протоколу:
варіант 2 - SMTP;

static void Main(string[] args)


{
SendMail("smtp.gmail.com", "smtp837@gmail.com", "kwfvtuypcjabbrui", "smtp837@gmail.com", "Тема письма",
"Тестовая оправка сообщени для проверки работы SMTP ");
Console.WriteLine("Сообщение отправлено");
Console.Read();
}
public static void SendMail(string smtpServer, string from, string password, string mailto, string caption, string mes-
sage, string attachFile = null)
{
try
{
MailMessage mail = new MailMessage();
mail.From = new MailAddress(from);
mail.To.Add(new MailAddress(mailto));
mail.Subject = caption;
mail.Body = message;
if (!string.IsNullOrEmpty(attachFile))
mail.Attachments.Add(new Attachment(attachFile));
SmtpClient client = new SmtpClient();
client.Host = smtpServer;
client.Port = 587;
client.EnableSsl = true;
client.Credentials = new NetworkCredential(from.Split('@')[0], password);
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.Send(mail);
mail.Dispose();
}
catch (Exception e)
{
throw new Exception("Mail.Send: " + e.Message);
}
}

Для відправки повідомлень за допомогою поштових скриньок gmail потрібно


спочатку налаштувати двох-етапну ауторізацію на акаунті, потім створити
пароль додатків
https://myaccount.google.com/u/4/apppasswords?rapt=AEjHL4N0pci4-
Gx7wZBRt5T4Co4qWgUGtVto3nsxc-
IWlmMRazEF9Pf0i0nwwMHeHuoaEGoiO5FaHIsC09eOWHVWnM-Z0z3HzQ

1.3 Висновки:
В ході даної роботи були виконані завдання відповідно до поставленої мети.
Результати виконання завдання представлені у звіті.

You might also like