Передача данных по сети с использованием механизма сокетов 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; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!