SocketType SocketType SocketType SocketType Enum

Определение

Указывает тип сокета, являющегося экземпляром класса Socket.Specifies the type of socket that an instance of the Socket class represents.

public enum class SocketType
public enum SocketType
type SocketType = 
Public Enum SocketType
Наследование

Поля

Dgram Dgram Dgram Dgram 2

Поддерживает датаграммы — ненадежные сообщения с фиксированной (обычно малой) максимальной длиной, передаваемые без установления подключения.Supports datagrams, which are connectionless, unreliable messages of a fixed (typically small) maximum length. Возможны потеря и дублирование сообщений, а также их получение не в том порядке, в котором они отправлены.Messages might be lost or duplicated and might arrive out of order. Объект Socket типа Dgram не требует установки подключения до приема и передачи данных и может обеспечивать связь со множеством одноранговых узлов.A Socket of type Dgram requires no connection prior to sending and receiving data, and can communicate with multiple peers. Dgram использует протокол Datagram (ProtocolType.Udp) семейство адресов AddressFamily.InterNetworkDgram uses the Datagram Protocol (ProtocolType.Udp) and the AddressFamily.InterNetwork .address family.

Raw Raw Raw Raw 3

Поддерживает доступ к основному транспортному протоколу.Supports access to the underlying transport protocol. Используя Raw, можно организовать связь с применением протоколов, таких как протокол ICMP (ProtocolType.Icmp) и протокол IGMP (ProtocolType.Igmp).Using Raw, you can communicate using protocols like Internet Control Message Protocol (ProtocolType.Icmp) and Internet Group Management Protocol (ProtocolType.Igmp). При передаче приложение должно обеспечивать полный IP-заголовок.Your application must provide a complete IP header when sending. Полученные датаграммы возвращаются с неизмененными IP-заголовком и параметрами.Received datagrams return with the IP header and options intact.

Rdm Rdm Rdm Rdm 4

Поддерживает ориентированную на сообщения связь без установления подключения с надежной доставкой сообщений и сохранением границ сообщений в данных.Supports connectionless, message-oriented, reliably delivered messages, and preserves message boundaries in data. Сообщения RDM (Reliably-Delivered Messages — сообщения с надежной доставкой) принимаются без получения дубликатов и в порядке отправки.Rdm (Reliably Delivered Messages) messages arrive unduplicated and in order. Кроме того, отправителю отправляется уведомление в случае потери сообщений.Furthermore, the sender is notified if messages are lost. Если инициализируется сокет Socket типа Rdm, нет необходимости в установлении подключения к удаленному узлу перед началом отправки или получения данных.If you initialize a Socket using Rdm, you do not require a remote host connection before sending and receiving data. Используя тип Rdm, можно организовать связь со множеством узелов.With Rdm, you can communicate with multiple peers.

Seqpacket Seqpacket Seqpacket Seqpacket 5

Обеспечивает надежную двустороннюю передачу упорядоченных байтовых потоков через сеть в режиме с установлением подключения.Provides connection-oriented and reliable two-way transfer of ordered byte streams across a network. Seqpacket не дублирует данные и сохраняет границы в потоке данных.Seqpacket does not duplicate data, and it preserves boundaries within the data stream. Объект Socket типа Seqpacket взаимодействует с одним узелом и требует установления подключения к удаленному узлу перед началом передачи данных.A Socket of type Seqpacket communicates with a single peer and requires a remote host connection before communication can begin.

Stream Stream Stream Stream 1

Поддерживает надежные двусторонние байтовые потоки в режиме с установлением подключения, без дублирования данных и без сохранения границ данных.Supports reliable, two-way, connection-based byte streams without the duplication of data and without preservation of boundaries. Объект Socket этого типа взаимодействует с одним узлом и требует установления подключения к удаленному узлу перед началом передачи данных.A Socket of this type communicates with a single peer and requires a remote host connection before communication can begin. Stream использует протокол TCP (ProtocolType.Tcp) и семейство адресов AddressFamily.InterNetworkStream uses the Transmission Control Protocol (ProtocolType.Tcp) and the AddressFamily.InterNetwork .address family.

Unknown Unknown Unknown Unknown -1

Задает неизвестный тип Socket.Specifies an unknown Socket type.

Примеры

В следующем примере в SocketType.Stream качестве параметра Socket конструктора используется аргумент.The following example uses SocketType.Stream as a parameter to the Socket constructor.

//Creates the Socket for sending data over TCP.
Socket^ s = gcnew 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." );
}
   //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.");
    }

'Creates the Socket for sending data over TCP.
Dim s As New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)

' Connects to host using IPEndPoint.
s.Connect(EPhost)
If Not s.Connected Then
   strRetPage = "Unable to connect to host"
End If
' Use the SelectWrite enumeration to obtain Socket status.
If s.Poll(- 1, SelectMode.SelectWrite) Then
   Console.WriteLine("This Socket is writable.")
Else
   If s.Poll(- 1, SelectMode.SelectRead) Then
      Console.WriteLine(("This Socket is readable. "))
   Else
      If s.Poll(- 1, SelectMode.SelectError) Then
         Console.WriteLine("This Socket has an error.")
      End If
   End If 
End If 

Комментарии

Прежде чем Socket объект может отправлять и получать данные, он сначала должен быть создан AddressFamilyс помощью ProtocolType, SocketTypeи.Before a Socket can send and receive data, it must first be created using an AddressFamily, a SocketType, and a ProtocolType. Перечисление предоставляет несколько параметров для определения Socket типа, который вы хотите открыть. SocketTypeThe SocketType enumeration provides several options for defining the type of Socket that you intend to open.

Примечание

SocketTypeИногда неявно указывает, какой ProtocolType используется AddressFamilyв.SocketType sometimes implicitly indicates which ProtocolType is used within an AddressFamily. Например, если System.Net.Sockets.SocketType имеет SocketType.Dgramзначение, System.Net.Sockets.ProtocolType всегда ProtocolType.Udpимеет значение.For example, when the System.Net.Sockets.SocketType is SocketType.Dgram, the System.Net.Sockets.ProtocolType is always ProtocolType.Udp. System.Net.Sockets.SocketType Если имеет SocketType.Streamзначение, System.Net.Sockets.ProtocolType всегдаProtocolType.Tcpявляется.When the System.Net.Sockets.SocketType is SocketType.Stream, the System.Net.Sockets.ProtocolType is always ProtocolType.Tcp. При попытке создать Socket с несовместимым Socket сочетанием вызывает исключение SocketException.If you try to create a Socket with an incompatible combination, Socket throws a SocketException.

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

Дополнительно