Прочитать на английском

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


SocketType Перечисление

Определение

Указывает тип сокета, являющегося экземпляром класса Socket.

C#
public enum SocketType
Наследование
SocketType

Поля

Имя Значение Описание
Dgram 2

Поддерживает датаграммы — ненадежные сообщения с фиксированной (обычно малой) максимальной длиной, передаваемые без установления подключения. Возможны потеря и дублирование сообщений, а также их получение не в том порядке, в котором они отправлены. Объект Socket типа Dgram не требует установки подключения до приема и передачи данных и может обеспечивать связь со множеством одноранговых узлов. Dgramиспользует протокол datagram (ProtocolType.Udp) и AddressFamilyсемейство адресов .InterNetwork

Raw 3

Поддерживает доступ к основному транспортному протоколу. Используя Raw, можно организовать связь с применением протоколов, таких как протокол ICMP (ProtocolType.Icmp) и протокол IGMP (ProtocolType.Igmp). При передаче приложение должно обеспечивать полный IP-заголовок. Полученные датаграммы возвращаются с неизмененными IP-заголовком и параметрами.

Rdm 4

Поддерживает ориентированную на сообщения связь без установления подключения с надежной доставкой сообщений и сохранением границ сообщений в данных. Сообщения RDM (Reliably-Delivered Messages — сообщения с надежной доставкой) принимаются без получения дубликатов и в порядке отправки. Кроме того, отправителю отправляется уведомление в случае потери сообщений. Если инициализируется сокет Socket типа Rdm, нет необходимости в установлении подключения к удаленному узлу перед началом отправки или получения данных. Используя тип Rdm, можно организовать связь со множеством узелов.

Seqpacket 5

Обеспечивает надежную двустороннюю передачу упорядоченных байтовых потоков через сеть в режиме с установлением подключения. Seqpacket не дублирует данные и сохраняет границы в потоке данных. Объект Socket типа Seqpacket взаимодействует с одним узелом и требует установления подключения к удаленному узлу перед началом передачи данных.

Stream 1

Поддерживает надежные двусторонние байтовые потоки в режиме с установлением подключения, без дублирования данных и без сохранения границ данных. Объект Socket этого типа взаимодействует с одним узлом и требует установления подключения к удаленному узлу перед началом передачи данных. Streamиспользует протокол управления передачей (ProtocolType.Tcp) и AddressFamilyсемейство адресов .InterNetwork

Unknown -1

Задает неизвестный тип Socket.

Примеры

В следующем примере используется SocketType.Stream в качестве параметра конструктора Socket .

C#
//Creates the Socket for sending data over TCP.
Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream,
   ProtocolType.Tcp );

// Connects to host using IPEndPoint.
s.Connect(EPhost);
if (!s.Connected)
{
   strRetPage = "Unable to connect to host";
}
// Use the SelectWrite enumeration to obtain Socket status.
 if(s.Poll(-1, SelectMode.SelectWrite)){
      Console.WriteLine("This Socket is writable.");
 }
 else if (s.Poll(-1, SelectMode.SelectRead)){
       Console.WriteLine("This Socket is readable." );
 }
 else if (s.Poll(-1, SelectMode.SelectError)){
      Console.WriteLine("This Socket has an error.");
 }

Комментарии

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

Примечание

SocketType иногда неявно указывает, какая ProtocolType из них используется в AddressFamily. Например, если System.Net.Sockets.SocketType имеет значение SocketType.Dgram, System.Net.Sockets.ProtocolType всегда ProtocolType.Udpимеет значение . System.Net.Sockets.SocketType Если имеет значение SocketType.Stream, System.Net.Sockets.ProtocolType всегда ProtocolType.Tcpимеет значение . При попытке создать Socket с несовместимым сочетанием Socket вызывает исключение SocketException.

Применяется к

Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

См. также раздел