Поделиться через


Класс System.Net.Sockets.Socket

В этой статье приводятся дополнительные замечания к справочной документации по этому API.

Класс Socket предоставляет широкий набор методов и свойств для сетевого взаимодействия. Класс Socket позволяет выполнять синхронную и асинхронную передачу данных с помощью любого из протоколов связи, перечисленных в ProtocolType перечислении.

Класс Socket следует шаблону именования .NET для асинхронных методов. Например, синхронный Receive метод соответствует асинхронным ReceiveAsync вариантам.

Используйте следующие методы для синхронного режима операций:

  • Если используется протокол, ориентированный на подключение, например TCP, сервер может прослушивать подключения с помощью Listen метода. Метод Accept обрабатывает все входящие запросы на подключение и возвращает Socket значение, которое можно использовать для обмена данными с удаленным узлом. Используйте возвращаемое Socket значение для вызова метода Send или Receive. Bind Вызовите метод перед вызовом Listen метода, если вы хотите указать локальный IP-адрес и номер порта. Используйте номер порта в нуле, если требуется, чтобы базовый поставщик услуг назначит бесплатный порт. Если вы хотите подключиться к узлу прослушивания, вызовите Connect метод. Для передачи данных вызовите метод Send или Receive.
  • Если вы используете протокол без подключения, например UDP, вам не нужно прослушивать подключения вообще. ReceiveFrom Вызовите метод, чтобы принять все входящие диаграммы данных. SendTo Используйте метод для отправки диаграмм данных удаленному узлу.

Чтобы асинхронно обрабатывать обмен данными, используйте следующие методы:

  • Если вы используете протокол, ориентированный на подключение, например TCP, используйте ConnectAsync для подключения к узлу прослушивания. Используйте SendAsync или ReceiveAsync для асинхронного обмена данными. Входящие запросы на подключение можно обрабатывать с помощью AcceptAsync.
  • Если вы используете протокол без подключения, например UDP, можно использовать SendToAsync для отправки данных и ReceiveFromAsyncполучения диаграмм данных.

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

Завершив отправку и получение данных, используйте Shutdown метод для отключения Socket. После вызова Shutdown выполните метод Close, чтобы освободить все ресурсы, связанные с Socket.

Класс Socket позволяет вам настроить Socket, используя метод SetSocketOption. Получите эти параметры с помощью GetSocketOption метода.