Сокеты в С#

Сокет – это один конец двухстороннего канала связи между двумя программами, работающими в сети. Используя два сокета, можно передавать данные между разными процессами (локальными или удаленными).

Прежде, чем использовать сокет, его нужно открыть, задав надлежащие разрешения. Как только ресурс открыт, из него можно считывать данные и/или в него можно записывать данные. После его использования нужно вызвать метод Close() для его закрытия. Существует два типа сокетов:

Потоковый сокет

Потоковый сокет – это сокет с установленным соединением, состоящий из потока байтов, который может быть двунаправленным, то есть через такой сокет можно передавать и принимать данные.

Потоковый сокет гарантирует доставку передаваемых данных в целости и сохранности, он сохраняет последовательность данных. Данные сокеты используют в качестве транспортного протокола TCP, который контролирует доставку данных.

Дейтаграмные сокеты

Дейтаграмные сокеты не подразумевают установку соединения. Сообщение отправляется указанному сокету и на этом все. Если все хорошо, сообщение будет доставлено получателю, если нет, отправитель даже не узнает об этом.

Сырные сокеты

Задача таких сокетов заключается в обходе механизма, с помощью которого компьютер обрабатывает TCP/IP. Сырой сокет – это сокет, который принимает пакеты, обходит уровни TCP и UDP в стеке TCP/IP и отправляет непосредственно приложению.

Классы для работы с сокетами

MulticastOption – устанавливает значение IP-адреса для присоединения к IP-группе или для выхода из нее.

NetworkStream – реализует базовый класс сетевого потока, использующего для отправки и получения данных.

Socket – обеспечивает базовую функциональность приложения сокета.

SocketException – задает исключения при работе с сокетами.

TcpClient – данные класс построен на классе Socket, чтобы обеспечить TCP-обслуживание на более высоком уровне. Он предоставляет несколько методов для отправки и получения данных через сеть.

TcpListener – построен на низкоуровневом классе Socket. Его основное назначение – серверные приложения. Он ожидает входящие запросы на соединения от клиентов и уведомляет приложение о любых соединениях.

UdpClient – содержит методы для отправки и получения данных посредством протокола UDP.

Основной класс – это класс Socket. Он обеспечивает базовую функциональность для работы с сокетами. На его базе построены некоторые другие классы.

Члены класса Socket

Accept() – создает новый сокет для обработки входящего запроса на соединение.

AddressFamily – предоставляет семейство адресов сокета – значения из перечисления Socket.AddressFamily.

Available – возвращает объем доступных для чтения данных.

Bind() – связывает сокет с локальной конечной точкой для ожидания входящих запросов на соединение.

Blocking – дает или устанавливает значение, показывающее находится ли сокет в блокирующем режиме.

Close() – закрывает сокет.

Connect() – устанавливает соединение с удаленным узлом.

Connected – возвращает значение, показывающее, соединен ли сокет с удаленным узлом.

GetSocketOption() – возвращает значение SocketOption.

IOControl() – устанавливает для сокета низкоуровневые режимы работы.

Listen() – помещает сокет в режим прослушивания (ожидания). Используется только на сервере.

LocalEndPoint – сообщает локальную конечную точку.

Poll() – определяет состояние сокета.

ProtocolType – содержит тип протокола сокета.

Receive() – получает данные из сокета.

RemoteEndPoint – сообщает удаленную конечную точку сокета.

Select() – проверяет состояние одного или нескольких сокетов.

Send() – отправляет данные соединенному сокету.

SetSocketOption() – устанавливают опцию сокета.

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

SocketType – содержит тип сокета.

 
Поделиться в facebook
Facebook
Поделиться в twitter
Twitter
Поделиться в vk
VK
Поделиться в google
Google+
Поделиться в email
Email

Один ответ к “Сокеты в С#”

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Группа в VK

Помощь проекту

Обнаружили опечатку?

Сообщите нам об этом, выделите текст с ошибкой и нажмите Ctrl+Enter, будем очень признательны!

Свежие статьи

Похожие статьи

Entity Framework

Entity Framework

ADO.NET Entity Framework (EF) — объектно-ориентированная технология доступа к данным, является object-relational mapping (ORM) решением для .NET Framework от Microsoft. Предоставляет возможность взаимодействия с объектами

 
Работа с базой данных в C#

Работа с базой данных в C#

В данной статье мы подробно поговорим о разработке небольшого приложения с помощью Visual Studio базы данных и языка C#. Советуем поэтапно выполнять все инструкции из

 
Создание сканера портов

Создание сканера портов

В прошлой статье “Сокеты в C#” мы познакомились с сокетами и подробно рассмотрели классы для работы с ними. В этой статье мы разработаем простое приложение

 
Пространство имен System.Net.

Пространство имен System.Net.

В этой статье коротко поговорим о пространстве имен System.Net и некоторых его классах. В последующих статьях будем рассматривать другие его классы. Пространство имён System.Net содержит

 

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: