Udostępnij za pośrednictwem


SocketType Wyliczenie

Definicja

Określa typ gniazda reprezentowanego przez Socket wystąpienie klasy.

public enum class SocketType
public enum SocketType
type SocketType = 
Public Enum SocketType
Dziedziczenie
SocketType

Pola

Dgram 2

Obsługuje datagramy, które są bez połączenia, niewiarygodne komunikaty o stałej (zazwyczaj małej) maksymalnej długości. Komunikaty mogą zostać utracone lub zduplikowane i mogą zostać wysłane z zamówienia. Dgram Typ Socket nie wymaga połączenia przed wysłaniem i odbieraniem danych i może komunikować się z wieloma elementami równorzędnymi. Dgramużywa protokołu Datagram Protocol (ProtocolType.Udp) i rodziny adresów AddressFamily.InterNetwork

Raw 3

Obsługuje dostęp do bazowego protokołu transportu. Za pomocą Rawprogramu można komunikować się przy użyciu protokołów, takich jak Internet Control Message Protocol (ProtocolType.Icmp) i Internet Group Management Protocol (ProtocolType.Igmp). Aplikacja musi podać pełny nagłówek IP podczas wysyłania. Odebrane datagramy zwracają nagłówek IP i opcje nienaruszone.

Rdm 4

Obsługuje komunikaty bez połączenia, zorientowane na komunikaty, niezawodnie dostarczane i zachowuje granice komunikatów w danych. Komunikaty rdm (niezawodnie dostarczone komunikaty) docierają do nieuzuplikowanych i w kolejności. Ponadto nadawca jest powiadamiany o utracie komunikatów. Jeśli zainicjujesz metodę Socket za pomocą polecenia Rdm, przed wysłaniem i odebraniem danych nie jest wymagane połączenie hosta zdalnego. Za pomocą Rdmprogramu można komunikować się z wieloma elementami równorzędnymi.

Seqpacket 5

Zapewnia dwukierunkowy i zorientowany na połączenie transfer uporządkowanych strumieni bajtów w sieci. Seqpacket nie duplikuje danych i zachowuje granice w strumieniu danych. Seqpacket Typ Socket komunikuje się z jednym elementem równorzędnym i wymaga połączenia hosta zdalnego przed rozpoczęciem komunikacji.

Stream 1

Obsługuje niezawodne, dwukierunkowe strumienie bajtów oparte na połączeniu bez duplikowania danych i bez zachowywania granic. Typ Socket ten komunikuje się z jednym elementem równorzędnym i wymaga połączenia hosta zdalnego przed rozpoczęciem komunikacji. Streamużywa protokołu Transmission Control Protocol (ProtocolType.Tcp) i rodziny adresów AddressFamily.InterNetwork

Unknown -1

Określa nieznany Socket typ.

Przykłady

W poniższym przykładzie użyto SocketType.Stream jako parametru konstruktora Socket .

//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

Socket Aby można było wysyłać i odbierać dane, należy najpierw utworzyć je przy użyciu elementu AddressFamily, a SocketTypei ProtocolType. Wyliczenie SocketType zawiera kilka opcji definiowania typu Socket , który ma być otwarty.

Uwaga

SocketType czasami niejawnie wskazuje, który ProtocolType jest używany w obiekcie AddressFamily. Na przykład, gdy parametr System.Net.Sockets.SocketType to , wartość System.Net.Sockets.ProtocolType jest SocketType.Dgramzawsze ProtocolType.Udp. Gdy parametr System.Net.Sockets.SocketType to SocketType.Stream, wartość System.Net.Sockets.ProtocolType jest zawsze ProtocolType.Tcp. Jeśli spróbujesz utworzyć element Socket z niezgodną kombinacją, Socket zwraca wartość SocketException.

Dotyczy

Zobacz też