SocketType Wyliczenie

Definicja

Określa typ gniazda, który Socket reprezentuje wystąpienie klasy.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
Dziedziczenie
SocketType

Pola

Dgram 2

Obsługuje datagramy, które są bezpołączeniowe, niezawodne komunikaty o stałej (zwykle małych) długości.Supports datagrams, which are connectionless, unreliable messages of a fixed (typically small) maximum length. Komunikaty mogą być utracone lub zduplikowane i mogą dotrzeć do nieuporządkowanej kolejności.Messages might be lost or duplicated and might arrive out of order. A Socket typu Dgram nie wymaga połączenia przed wysłaniem i odebraniem danych i może komunikować się z wieloma elementami równorzędnymi.A Socket of type Dgram requires no connection prior to sending and receiving data, and can communicate with multiple peers. Dgram używa protokołu datagram ( ProtocolType . Udp ) i AddressFamily .InterNetworkDgram uses the Datagram Protocol (ProtocolType.Udp) and the AddressFamily.InterNetwork Rodzina adresów.address family.

Raw 3

Program obsługuje dostęp do podstawowego protokołu transportowego.Supports access to the underlying transport protocol. Korzystając Raw z programu, można komunikować się przy użyciu protokołów, takich jak protokół wiadomości internetowych ( ProtocolType . Icmp ) i protokół zarządzania grupami internetowymi ( ProtocolType . Igmp ).Using Raw, you can communicate using protocols like Internet Control Message Protocol (ProtocolType.Icmp) and Internet Group Management Protocol (ProtocolType.Igmp). Podczas wysyłania aplikacja musi udostępnić pełny nagłówek adresu IP.Your application must provide a complete IP header when sending. Odebrane datagramy zwracają z nagłówkiem i opcjami IP bez zmian.Received datagrams return with the IP header and options intact.

Rdm 4

Obsługuje bezpołączeniowe, zorientowane na wiadomości, niezawodne dostarczanie komunikatów i zachowuje granice komunikatów w danych.Supports connectionless, message-oriented, reliably delivered messages, and preserves message boundaries in data. Komunikaty RDM (niezawodne dostarczanie komunikatów) nie są zduplikowane i w tej samej kolejności.Rdm (Reliably Delivered Messages) messages arrive unduplicated and in order. Ponadto Nadawca zostanie powiadomiony o utracie komunikatów.Furthermore, the sender is notified if messages are lost. Jeśli zainicjujesz Socket Korzystanie z programu Rdm , nie musisz mieć połączenia z hostem zdalnym przed wysłaniem i odebraniem danych.If you initialize a Socket using Rdm, you do not require a remote host connection before sending and receiving data. Za pomocą programu Rdm można komunikować się z wieloma elementami równorzędnymi.With Rdm, you can communicate with multiple peers.

Seqpacket 5

Zapewnia zorientowane i niezawodne dwukierunkowo transfer strumieni uporządkowanych bajtów w sieci.Provides connection-oriented and reliable two-way transfer of ordered byte streams across a network. Seqpacket nie duplikuje danych i zachowuje granice w strumieniu danych.Seqpacket does not duplicate data, and it preserves boundaries within the data stream. A Socket typu Seqpacket komunikuje się z pojedynczym elementem równorzędnym i wymaga połączenia z hostem zdalnym przed rozpoczęciem komunikacji.A Socket of type Seqpacket communicates with a single peer and requires a remote host connection before communication can begin.

Stream 1

Obsługa niezawodnych, dwukierunkowych strumieni bajtów opartych na połączeniach bez duplikowania danych i bez zachowywania granic.Supports reliable, two-way, connection-based byte streams without the duplication of data and without preservation of boundaries. SocketTen typ komunikuje się z pojedynczym elementem równorzędnym i wymaga połączenia z hostem zdalnym przed rozpoczęciem komunikacji.A Socket of this type communicates with a single peer and requires a remote host connection before communication can begin. Stream używa Transmission Control Protocol ( ProtocolType . Tcp ) i AddressFamily .InterNetworkStream uses the Transmission Control Protocol (ProtocolType.Tcp) and the AddressFamily.InterNetwork Rodzina adresów.address family.

Unknown -1

Określa nieznany Socket Typ.Specifies an unknown Socket type.

Przykłady

Poniższy przykład używa SocketType.Stream jako parametru do Socket konstruktora.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 

Uwagi

Aby Socket można było wysyłać i odbierać dane, najpierw należy je utworzyć przy użyciu AddressFamily , a SocketType i ProtocolType .Before a Socket can send and receive data, it must first be created using an AddressFamily, a SocketType, and a ProtocolType. SocketTypeWyliczenie zawiera kilka opcji umożliwiających zdefiniowanie typu Socket , który ma zostać otwarty.The SocketType enumeration provides several options for defining the type of Socket that you intend to open.

Uwaga

SocketType Czasami niejawnie wskazuje, który ProtocolType jest używany w AddressFamily .SocketType sometimes implicitly indicates which ProtocolType is used within an AddressFamily. Na przykład gdy ma wartość System.Net.Sockets.SocketType SocketType.Dgram , System.Net.Sockets.ProtocolType jest zawsze ProtocolType.Udp .For example, when the System.Net.Sockets.SocketType is SocketType.Dgram, the System.Net.Sockets.ProtocolType is always ProtocolType.Udp. Gdy System.Net.Sockets.SocketType ma wartość SocketType.Stream , System.Net.Sockets.ProtocolType jest zawsze ProtocolType.Tcp .When the System.Net.Sockets.SocketType is SocketType.Stream, the System.Net.Sockets.ProtocolType is always ProtocolType.Tcp. Jeśli spróbujesz utworzyć Socket przy użyciu niezgodnej kombinacji, program Socket wygeneruje SocketException .If you try to create a Socket with an incompatible combination, Socket throws a SocketException.

Dotyczy

Zobacz też