Будь умным!


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

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

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

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

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

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

от 25%

Подписываем

договор

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

Скидка 25% при заказе до 11.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. Введение Теоретическая часть 1 Понятие себестоимости
2. тема методов исследования в маркетинге Каковы правила и процедура маркетинговых исследований Раскро1
3. Статья Приобщение детей к проектноисследовательской деятельности Экономическое и духовное развитие с
4. отважного и хитрого хорошо владел разными видами оружия полного свободолюбия и постоянно готового к проте
5. Статья- Физическая культура в системе отечественного образования
6. Возраст и возрастная периодизация.html
7. политической и военностратегической обстановки в мире на создание очагов напряженности и зон конфликтов н
8. Финансы и кредит Дистанционное
9. Теория конденсированного состояния вещества
10. ти и способы активизации соц
11. ТОМСКИЙ ГОСУДАРСТВЕННЫЙ ПЕДАГОГИЧЕСКИЙ УНИВЕРСИТЕТ ТГПУ Факультет психологии связей с общественнос
12. Каспий те~ізіні~ те~із ортасын ~ор~ау ж~ніндегі негіздемелік конвенцияны ратификациялау туралы ~Рны~ за
13. ЗФрейд Психоналитический метод и его философская интерпретация
14. Тема- ПСИХОЛОГИЧЕСКИЕ ТЕОРИИ ДЕЯТЕЛЬНОСТИ Одесса2008г
15. аудит. Актуальность темы исследования заключается в том что проверка и ведение учета денежных средств пр
16. Смысл истории и общественный прогресс
17. Курсова робота Вільям Шекспір 1
18. Створення інформаційно ~ консультаційної системи Працевлаштування на стадіях Технічний проект та Ро.
19. число составляющих ЭВМ элементов число соединений коэффициенты масштабный и весовые
20. Методические рекомендации для выполнения САМОСТОЯТЕЛЬНой ВНЕАУДИТОРНой РАБОТы СТУДЕНТОВ К ПРАКТИЧЕС