Слайд 2
Сетевая модель
Для единого представления данных в сетях с
неоднородными устройствами и программным обеспечением международная организация по стандартам
ISO (International Standardization Organization) разработала базовую модель связи открытых систем OSI (Open System Interconnection)
Слайд 4
Сетевое приложение
Вся сеть состоит из отдельных элементов -
хостов, которые представляют собой компьютеры и другие подключенные устройства.
Между собой они соединены каналами связи (кабели Ethernet, Wi-Fi и т.д.) и маршрутизаторами. Маршрутизаторы объединяют компьютеры в подсети и контролируют передачу данных между ними.
Слайд 5
Сетевое приложение
Для взаимодействия компьютеры применяют протоколы.
Протокол представляет собой
соглашения о том, как пакеты данных будут передаваться по
каналам коммуникации.
Слайд 6
Сетевое приложение
Существует множество различных протоколов. Протоколы, которые используются
для передачи данных по сети, составляют семейство протоколов TCP/IP.
Основные из них: Internet Protocol (IP), Transmission Control Protocol (TCP) и User Datagram Protocol (UDP).
Слайд 7
Сетевое приложение
Существует множество различных протоколов. Протоколы, которые используются
для передачи данных по сети, составляют семейство протоколов TCP/IP.
Основные из них: Internet Protocol (IP), Transmission Control Protocol (TCP) и User Datagram Protocol (UDP).
Слайд 8
Условная схема работы сетевого приложения
Слайд 9
Сетевое приложение
IP представляет сетевой уровень. Он использует нижележащие
уровни, которые представляют физические каналы коммуникации - кабели Ethernet
и т.д., для передачи пакетов с данными другому хосту.
Выше IP располагается транспортный уровень, который образуют протоколы TCP и UDP.
Слайд 10
Протоколы
Протоколы используют определенные порты для передачи данных.
TCP
позволяет отследить потерю пакетов и их дублирование при передаче.
UDP подобного не позволяет сделать и нацелен на простую передачу данных.
Слайд 11
Сокеты
Приложение взаимодействует с уровнем TCP / UDP не
напрямую, а через специальный API, который предоставляют сокеты.
Т.е. сокеты
– это интерфейс для создания сетевых приложений, который опирается на встроенные возможности операционной системы.
Слайд 12
Виды сокетов
потоковые сокеты (stream socket)
дейтаграммные сокеты (datagram
socket).
Потоковые сокеты используют протокол TCP, дейтаграммные - протокол
UDP.
Слайд 13
Службы DNS
выполняют сопоставление между интернет-адресами в формате IPv4
или IPv6 и доменными названиями.
Пример:
"www.microsoft.com", ему соответствует адрес в
формате IPv4 2.23.143.150
Слайд 14
Порт
Кроме адреса при сетевых взаимодействиях используются порты. Порт представляет
16-битное число в диапазоне от 1 до 65 535.
Использование портов позволяет разграничить несколько запущенных приложений на одном хосте.
Слайд 15
IPAddres свойсва и методы
Метод Parse(): преобразует строковое представление адреса
в IPAddress
IPAddress ip = IPAddress.Parse("127.0.0.1"); // ip указывает на
локальный адрес
Статическое свойство Loopback: возвращает объект IPAddress для адреса 127.0.0.1. Аналогично вышеприведенному коду
Статическое свойство Any: возвращает объект IPAddress для адреса 0.0.0.0
Статическое свойство Broadcast: возвращает объект IPAddress для адреса 255.255.255.255
Слайд 16
IPHostEntry
Также для получения адреса в сети используется класс IPHostEntry.
Он содержит информацию об определенном компьютере-хосте.
С помощью свойства HostName этот класс
возвращает имя хоста, а с помощью свойства AddressList - все ip-адреса хоста, так как один компьютер может иметь в сети несколько ip-адресов.
Для взаимодействия с dns-сервером и получения ip-адреса применяется класс Dns. Для получения информации о хосте компьютера и его адресах у него имеется метод GetHostEntry()
Слайд 18
Загрузка файлов WebClient
Самый простой способ загрузки предоставляет метод DownloadFile().
Например, загрузим файл с какого-нибудь сайта:
WebClient client = new
WebClient();
client.DownloadFile("http://somesite.com/book.pdf", "myBook.pdf");
Console.WriteLine("Файл загружен");
Слайд 20
Отправка запросов WebRequest и WebResponse
Класс WebRequest служит для
отправки запроса.
Класс WebResponse служит для получения ответа.
Слайд 21
Отправка запросов WebRequest и WebResponse
Принцип работы сводится к
Создание
объекта WebRequest с помощью метода Create(), в который передается адрес
ресурса с виде строки или объекта Uri
Отправка запроса и получение ответа
Получение потока ответа и манипуляции с ним