Клиент-серверное взаимодействие без установки соединения

Передача информации на основе соединения напоминает использование системы телефонной связи, когда пользователь набирает номер и соединяется с телефоном абонента. Система поддерживает соединение в течение телефонного вызова, независимо от того, разговаривают абоненты или нет.

В противоположность этому передача без установки соединения с помощью дэйтаграмм больше напоминает метод пересылки и доставки почты. При передаче без установления соединения информация объединяется в пакеты, называемые дэйтаграммами, которые можно сравнить с отправленными письмами. Если большое сообщение не помещается в один конверт, то оно разбивается на части и помещается в отдельные последовательно пронумерованные конверты. Все письма отправляются одновременно. Они могут доходить до адресата в указанном порядке, без соблюдения порядка, либо не доходить вообще. Перед интерпретацией содержимого сообщения адресат упорядочивает все его части. Если сообщение не очень большое и может разместиться в одном конверте, то задача упорядочения снимается, но при этом остается вариант, что сообщение никогда не дойдет до адресата. Для передачи информации независимо от соединения в С# предусмотрен класс UdpClient. Подобно классам TcpListener и TcpClient, класс UdpClient использует методы класса Socket. Методы Send и Receive класса UdpClient предназначены для передачи данных с помощью методов Socket.SendTo () и для считывания данных с помощью метода Socket.ReceiveFrom().

Пример организация взаимодействия.

Рассмотрим пример использования дэйтаграмм для передачи пакетов информации между приложениями клиента и сервера. В приложении клиента пользователь вводит сообщение в текстовое поле и нажимает на клавишу < Enter >. Клиент преобразует сообщение в массив байтов и отправляет его в серверное приложение. Сервер получает пакет, отображает его информацию и возвращает пакет обратно клиенту. При получении пакета клиент отображает содержащуюся в нем информацию. В данном примере реализации классов клиента и сервера сходны.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: