SocketType Enumeration

Definition

Gibt den Sockettyp an, der von einer Instanz der Socket-Klasse dargestellt wird.

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

Felder

Dgram 2

Unterstützt Datagramme, die verbindungslose, unzuverlässige Meldungen mit einer festen (i. d. R. kleinen) maximalen Länge sind. Meldungen können verloren gehen, doppelt oder in der falschen Reihenfolge empfangen werden. Ein Socket vom Typ Dgram benötigt vor dem Senden und Empfangen von Daten keine Verbindung und kann mit mehreren Peers kommunizieren. Dgram verwendet das Datagram-Protokoll (ProtocolType.Udp) und die AddressFamily.InterNetwork- -Adressenfamilie.

Raw 3

Unterstützt den Zugriff auf das zugrunde liegende Übertragungsprotokoll. Wenn Sie Raw verwenden, können Sie für die Kommunikation Protokolle wie das Internet Control Message Protocol (ProtocolType.Icmp) und das Internet Group Management Protocol (ProtocolType.Igmp) verwenden. Die Anwendung muss beim Senden einen vollständigen IP-Header bereitstellen. Bei der Rückgabe empfangener Datagramme bleiben IP-Header und Optionen erhalten.

Rdm 4

Unterstützt verbindungslose, meldungsorientierte, zuverlässig übermittelte Meldungen und behält die Meldungsbegrenzungen innerhalb der Daten bei. Rdm (Reliably-Delivered Messages)-Meldungen werden nicht dupliziert und in der richtigen Reihenfolge empfangen. Darüber hinaus wird der Absender über verloren gegangene Meldungen benachrichtigt. Wenn Sie einen Socket mit Rdm initialisieren, benötigen Sie vor dem Senden und Empfangen von Daten keine Verbindung mit einem Remotehost. Mit Rdm können Sie mit mehreren Peers kommunizieren.

Seqpacket 5

Ermöglicht die verbindungsorientierte und zuverlässige bidirektionale Übertragung von geordneten Bytestreams über ein Netzwerk. Seqpacket dupliziert keine Daten und behält die Begrenzungen innerhalb des Datenstreams bei. Ein Socket vom Typ Seqpacket kommuniziert mit einem einzigen Peer und benötigt vor dem Beginn der Kommunikation eine Verbindung mit einem Remotehost.

Stream 1

Unterstützt zuverlässige, bidirektionale, verbindungsbasierte Bytestreams, bei denen keine Daten dupliziert und die Begrenzungen nicht beibehalten werden. Ein Socket dieses Typs kommuniziert mit einem einzigen Peer und benötigt vor dem Beginn der Kommunikation eine Verbindung mit einem Remotehost. Stream verwendet das Transmission Control Protocol (ProtocolType.Tcp) und die AddressFamily.InterNetwork -Adressenfamilie.

Unknown -1

Gibt einen unbekannten Socket-Typ an.

Beispiele

Im folgenden Beispiel wird der Konstruktor als Parameter Socket verwendetSocketType.Stream.

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

Hinweise

Bevor eine Socket Daten senden und empfangen kann, muss sie zuerst mithilfe einer , einer AddressFamilySocketTypeund einer ProtocolTypeerstellt werden. Die SocketType Enumeration bietet mehrere Optionen zum Definieren des Typs, Socket den Sie öffnen möchten.

Hinweis

SocketType manchmal implizit angibt, welche ProtocolType innerhalb einer AddressFamily. Wenn dies System.Net.Sockets.SocketType beispielsweise der ist SocketType.Dgram, ist dies System.Net.Sockets.ProtocolType immer ProtocolType.Udp. Wenn dies System.Net.Sockets.SocketType SocketType.Streamist, ist dies System.Net.Sockets.ProtocolType immer ProtocolType.Tcp. Wenn Sie versuchen, eine Socket mit einer inkompatiblen Kombination zu erstellen, Socket wird eine SocketException.

Gilt für

Siehe auch