Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

Тема Створення клієнт-серверних програм за допомогою бібліотек C Виконав студент

Работа добавлена на сайт samzan.net:

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 9.11.2024

Міністерство освіти і науки молоді та спорту України

Національний університет "Львівська політехніка"

Інститут післядипломної освіти

Кафедра програмного забезпечення

Звіт для
Лабораторної роботи

З ПРЕДМЕТУ «Програмне забезпечення мережевих технологій»
           Тема «Створення клієнт/серверних програм за допомогою  бібліотек C#»

Виконав студент
групи ПІ-31з

Михалечко Назарій

 

 



Львів – 2013

Лабораторна робота

Тема: створення клієнт/серверних програм за допомогою  бібліотек C#.

Мета: навчитись  концепціям програмування мовою C#, а також засвоїти основні стандартні класи і методи  бібліотеки  net.

1. Програмування клієнтів та серверів  за протоколом TCP/IP

Розглянемо класи простору назв System.Net, на базі яких розробляються  програми сервера та клієнта  для спілкування  між собою на основі  TCP та  UDP протоколів.  В протоколі  TCP/IP кожний комп’ютер ідентифікується цілим числом довжиною в чотири байти – IP-адресою (наприклад, форматованим як 192.168.0.101). Для кращого запам’ятовування ця IP-адреса прив’язується до назви вузлового комп’ютера  -хоста.

Створення сервера  чи клієнта пов’язане з  формуванням об’єкту сокету для  прийняття запитів та надсилання відповідей. Для формування сокета необхідно знати   IP-адресу  комп’ютера, на якому виконується сервер, та номер  TCP – порту. Для визначенння IP-адреси за назвою хоста  використовується клас DNS для сполучення з DNS-сервером. Відповідні команди записуються наступним чином:

 // DNS: за назвою хосту визначення   IP-адреси

 IPHostEntry ipHostInfo = Dns.Resolve(Dns.GetHostName());

IPAddress ipAddress = ipHostInfo.AddressList[0];

 // створення обєкту порт+ IP-адреса

IPEndPoint localEndPoint = new IPEndPoint(ipAddress, 11000);

В цьому фрагменті присутні класи IPHostEntry, IPAddress – певні структури даних, методи яких дозволяють отимати їх властивості, а саме:

- Dns.GetHostName()- повертає назву компютера,

- Dns.Resolve() - повертає обєкт IPHostEntry інформації щодо компютера з заданою назвою, в тому числі AddressList  властивість, для повернення IP-адреси компютера (типу IPAdress). Метод Resolve() генерує виняткову ситуацію, якщо хост не знайдено.

Завдання до лабораторної роботи

  1.  Створити клас клієнта.
  2.  Створити клас сервера.
  3.  Забезпечити клієнт-серверне з’єднання.
  4.  Сформулювати ТЗ і специфікації на проектування локальної мережі кафедри, лабораторії тощо. Навести структуру локальної мережі з комп’ютером – сервером. Навести мінімальний та максимальний набори класів, необхідних для виконання мережею своїх функцій


Реалізація завдання

Клієнт

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading;

using System.Net.Sockets;

using System.IO;

namespace Client

{

   class Program

   {

       private static System.Net.Sockets.TcpClient clientSocket = new System.Net.Sockets.TcpClient();

       static void Main(string[] args)

       {

           Console.WriteLine ("Client Started");

// Створюєм сокет і конектимсь до серевера в порт 1234

           clientSocket.Connect("127.0.0.1", 1234);

           //получаєм потік

NetworkStream serverStream = clientSocket.GetStream();

           BinaryWriter Write = new BinaryWriter(serverStream);

          string g="";

 // до поки не ведено stop зчитуєм інформацію і відправляєм серверу

          while (g!="stop")     

          {

 

              g=Console.ReadLine();

              Write.Write(g);

 

           }

          

           serverStream.Close();

           Console.Read();

       }

   }

}

Сервер

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading;

using System.Net.Sockets;

using System.IO;

namespace three

{

   class Program

   {

       

      private static TcpListener server = new TcpListener(1234);

       private static TcpClient client = new TcpClient();

       /// <summary>

       /// клас підключення

       /// </summary>

       public class Connection

       {

           

           public TcpClient cl;

           /// <summary>

           /// функція роботи клієнта з сервером

           /// </summary>

           public void Work()

           {

               try

               {

                   NetworkStream networkStream = cl.GetStream();

                   BinaryReader Reader = new BinaryReader(networkStream); //зчитування

                   while (networkStream.CanRead)

                   {

                       string g = Reader.ReadString();

                       Console.WriteLine("{0}>> {1}", cl.Client.RemoteEndPoint, g);

                       //якщо клієнт вів stop відключаєм його

                       if (g == "stop")

                       {

                           Console.WriteLine("client {0} out ", cl.Client.LocalEndPoint);

                           cl.Client.Close();

                           networkStream.Close();

                           Reader.Close();

                           break;

                       }

                       Reader.BaseStream.Flush();

                   }

               }

               catch (Exception ex)

               {

                   Console.WriteLine(ex.ToString());

               }

           }

           static void Main(string[] args)

           {

               server.Start();

               Console.WriteLine("server start...");

               while (true)

               {

                   Console.WriteLine("wait to client..");

                   client = server.AcceptTcpClient();

                   if (client.Client.Connected)

                   {

                       NetworkStream networkStream = client.GetStream();

                       Console.WriteLine("начата работа с кліентом {0}",     client.Client.RemoteEndPoint);

                      Connection c = new Connection();

                      c.cl = client;

// створюєм окремий поті для клієнта

                       Thread t = new Thread(new ThreadStart(c.Work));

                       t.IsBackground = false;

                      t.Start();                 

                   }                 

               }

               server.Stop();

               Console.WriteLine(" >> exit");

               Console.Read();

           }  }  }}

Робота сервера

 

Робота клієнтів




1. Дизайн в области культуры и искусства базовый уровень среднего профессионального образования Наст
2. тщательно промыть кожу и слизистые оболочки очистить желудок промыть через зонд рвотное средство специф
3. ТЕМА 12 ЕКОНОМІЧНА РОЛЬ ДЕРЖАВИ У РИНКОВІЙ ЕКОНОМІЦІ Економічні функції держави в умовах ринку
4. Понятие имущества и капитала предприятия, производительность труда
5. ВВЕДЕНИЕ Актуальность характеристики изменений состояния природной среды в районах интенсивного освое
6. В Конституции России содержится норма гарантирующая свободу научного поиска
7. Контрольная работа- Уголовное право в первой и второй четверти XVIII века
8. Суть та види відтворення
9. УЧЕБНОЕ ПОСОБИЕ ПО ДИСЦИПЛИНЕ «ГИГИЕНА» ДЛЯ СТУДЕНТОВ ЛЕЧЕБНОГО ФАКУЛЬТЕТА
10. Тамбовский государственный технический университет Кафедра Экономика Профиль Бухгалтерский учет
11. Стенька Разин под Петербургом
12. по теме занятия Эпидемиология Распространенность туберкулезной инфекции и клинические проявления е
13. Теперь подошла очередь татуированных мужиков.
14. Climate and nature of Great Britain
15. Александр Степанович Попо
16.  НИОКР как фактор конкурентного успеха фирмы На рис
17. 1Сущность магнитопорошкового метода контроля 2Порядок проследованеия проходного светофора с погашенным о
18. Признаки положенные в основу классификации вирусов- 11
19. Если бы я был руководителем Западно-Сибирского района
20. на тему- Методи біржового котирування Виконала студентка групи 406КД Бондаренко А.html