Передача данных по сети с использованием механизма сокетов Windows



    Поддержку сокетов в .NET обеспечивают классы в пространстве имен System.Net.Sockets. Список классов для работы с сокетами приведен в таблице 4.4

 

    Таблица 4.4 -Классы для работы с сокетами

Класс Описание
MulticastOption Класс MulticastOption устанавливает значение IP-адреса для присоединения к IP-группе или для выхода из нее.
NetworkStream Класс NetworkStream реализует базовый класс потока, из которого данные отправляются и в котором они получаются. Это абстракция высокого уровня, представляющая соединение с каналом связи TCP/IP.
TcpClient Класс TcpClient строится на классе Socket, чтобы обеспечить TCP-обслуживание на более высоком уровне. TcpClient предоставляет несколько методов для отправки и получения данных через сеть.
TcpListener Этот класс также построен на низкоуровневом классе Socket. Его основное назначение — серверные приложения. Он ожидает входящие запросы на соединения от клиентов и уведомляет приложение о любых соединениях.
UdpClient UDP — это протокол, не организующий соединение.
SocketException Это исключение порождается, когда в сокете возникает ошибка.
Socket Последний класс в пространстве имен System.Net.Sockets — это сам класс Socket. Он обеспечивает базовую функциональность приложения сокета

 

Класс Socket

    Класс Socket играет важную роль в сетевом программировании, обеспечивая функционирование, как клиента, так и сервера. Главным образом, вызовы методов этого класса выполняют необходимые проверки, связанные с безопасностью, в том числе проверяют разрешения системы безопасности, после чего они переправляются к аналогам данных  методов в Windows Sockets API.

Наиболее важные свойства и методы  класса Socket, приведены в таблице 4.5.

    Таблица 4.5 - Свойства и методы класса Socket

Свойство или метод Описание
AddressFamily Задает семейство адресов сокета — значение из перечисления Socket.AddressFamily
Available Возвращает объем доступных для чтения данных
Blocking Задает или устанавливает значение, показывающее, находится ли сокет в блокирующем режиме
Connected Возвращает значение, информирующее, соединен ли сокет с удаленным хостом.
LocalEndPoint Задает локальную конечную точку
ProtocolType Задает тип протокола сокета
RemoteEndPoint Дает удаленную конечную точку сокета
SocketType Задает тип сокета
Accept() Создает новый сокет для обработки входящего запроса на соединение
Bind() Связывает сокет с локальной конечной точкой для ожидания входящих запросов на соединение
Close() Закрывает сокет
Connect() Устанавливает соединение с удаленным хостом
GetSocketOption() Возвращает значение SocketOption
IOControl() Устанавливает для сокета низкоуровневые режимы работы
Listen() Помещает сокет в режим прослушивания (ожидания). Данныйт метод предназначен только для серверных приложений
Receive() Получает данные от удаленного сокета (сокета, с которым установлено соединение)
Poll() Определяет статус сокета
Select() Проверяет статус одного или нескольких сокетов
Send() Отправляет данные сокету, с которым установлено сокдинение

Продолжение таблицы 4.5

SetSocketOption() Устанавливает опции сокета.
Shutdown() Запрещает операции отправки и получения данных на сокете

 

Пример программы, использующей класс Socket для работы в сети

    Программа представляет собой 2 консольных приложения – сервер и клиент, работающих по протоколу TCP.

    На рисунке 4.2 приведена экранная форма приложения сервера. Сервер ожидает установление соединения на порту 5555, выводит полученное сообщение на экран и отправляет ответ клиенту об успешном получении сообщения. Сервер работает в блокирующем режиме.

    На рисунке 4.3 приведена экранная форма приложения клиента. Клиент устанавливает соединение с сервером на порту 5555, посылает серверу сообщение и ожидает ответ от сервера.


Дата добавления: 2018-08-06; просмотров: 485; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!