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

Основы технологии сокетов

Категория:

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

Дисциплина:

Компьютерные сети

Город:

Беларусь, Минск

Учебное заведение:

БНТУ, ФИТР

Стоимость работы:

4 руб.

Оценка: 10
Объем страниц: 7
Год сдачи: 2020
Дата публикации: 01.06.2021

* Кроме файла с работой, также есть архив с дополнительными файлами.

Описание дополнительных файлов:

Исходный код программы

Фрагменты для ознакомления

Лабораторная работа № 5

 ОСНОВЫ ТЕХНОЛОГИИ СОКЕТОВ

 

Цель работы:

Изучить:

- понятие сокета, типы сокетов TCP/IP; 

- принципы реализации архитектуры клиент-сервер на основе интерфейса сокетов; 

- основные классы и методы .NET Framework для разработки сетевых приложений с использованием Winsock. 

 

Постановка задачи:  

1. Изучить методические указания к лабораторной работе, материалы лекций и рекомендуемую литературу.

2. Разработать консольное клиент-серверное приложение, демонстрирующее взаимодействие на основе потоковых сокетов.

3. Разработать консольное клиент-серверное приложение, демонстрирующее взаимодействие на основе дейтаграммных сокетов.

 

Ход выполнения работы:

Листинг клиентской части приложения:

using System;
using System.Net;
using System.Net.Sockets;
using System.Text;

namespace TCPClient
{
    class TCPCLIENT
    {
        // TCP/IP располагают номера динамически назначаемых портов в диапазоне значений между 1024 и 5000
        private const int port = 11000;
        private const int SIZE = 1024;
        static void Main()
        {
           
            try
            {
               // Устанавливаем удаленную точку для сокета
               Console.WriteLine("Клиент запущен)");
               // Разрешает DNS-имя узла или IP-адрес в экземпляр IPHostEntry.
               IPHostEntry ipHost = Dns.Resolve("localhost");
                IPAddress ipAddr = ipHost.AddressList[0];

                IPEndPoint ipEnd = new IPEndPoint(ipAddr, port);
                Socket s1 = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

                // Соединяем сокет с удаленной точкой
               s1.Connect(ipEnd);

               String byteClient = "Hello Server" + "<The End>";
                byte[] byteSend = Encoding.ASCII.GetBytes(byteClient);
                // Отправляем данные через сокет
               s1.Send(byteSend);

               byte[] byteRec = new byte[SIZE];     // размер буфера сообщений от сервера
               // Получаем ответ от сервера
               int len = s1.Receive(byteRec);
               Console.WriteLine("От сервера полученно{0} ", Encoding.ASCII.GetString(byteRec, 0, len));
               s1.Shutdown(SocketShutdown.Both);
               s1.Close();                             
            }
            catch ( Exception e )
            {
                Console.WriteLine(e.ToString());
            }
        }
    }
}

 

Блок-схема:

Блок-схема клиентской части приложения
Блок-схема клиентской части приложения

 

Листинг серверной части приложения.

Блок-схема:

Блок-схема серверной части приложения
Блок-схема серверной части приложения

 

Скриншоты результатов:

Скриншоты результатов

 

Скриншоты результатов

 

Дополнительное задание 1

Дополнительное задание 1
Дополнительное задание 1

 

Дополнительное задание 2

Дополнительное задание 2
Дополнительное задание 2

 

Вывод:

Изучили понятие сокеты и типы сокетов TCP/IP. А также принципы реал изации архитектуры клиент-сервер на основе интерфейса сокетов и основные классы, и методы .NET Framework для разработки сетевых приложений с использованием Winsock.

81