SocketType Enumeration

Definition

Gibt den Typ des Sockets an, den eine Instanz der Socket-Klasse darstellt.

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

Felder

Name Wert Beschreibung
Unknown -1

Gibt einen unbekannten Socket Typ an.

Stream 1

Unterstützt zuverlässige, bidirektionale, verbindungsbasierte Bytedatenströme ohne Duplizierung von Daten und ohne Erhaltung von Grenzen. Ein Socket dieser Art kommuniziert mit einem einzelnen Peer und erfordert eine Remotehostverbindung, bevor die Kommunikation beginnen kann. Stream verwendet das Transmission Control Protocol (ProtocolType.Tcp) und die AddressFamilyAdressfamilieInterNetwork .

Dgram 2

Unterstützt Datagramme, die verbindungslose, unzuverlässige Nachrichten einer festen (normalerweise kleinen) maximalen Länge sind. Nachrichten gehen möglicherweise verloren oder dupliziert und kommen möglicherweise nicht mehr an. Ein Socket Typ Dgram erfordert keine Verbindung vor dem Senden und Empfangen von Daten und kann mit mehreren Peers kommunizieren. Dgram verwendet das Datagram-Protokoll (ProtocolType.Udp) und die AddressFamilyAdressfamilieInterNetwork .

Raw 3

Unterstützt den Zugriff auf das zugrunde liegende Transportprotokoll. Mithilfe von < a0/> können Sie mithilfe von Protokollen wie Internet Control Message Protocol (.) und Internet Group Management Protocol (.) kommunizieren. Ihre Anwendung muss beim Senden einen vollständigen IP-Header bereitstellen. Empfangene Datagramme werden mit dem IP-Header und den intakten Optionen zurückgegeben.

Rdm 4

Unterstützt verbindungslose, nachrichtenorientierte, zuverlässig übermittelte Nachrichten und behält Nachrichtenbegrenzungen in Daten bei. Rdm-Nachrichten (zuverlässig zugestellte Nachrichten) werden nicht lizenziert und in der Reihenfolge angezeigt. Darüber hinaus wird der Absender benachrichtigt, wenn Nachrichten verloren gehen. Wenn Sie eine Socket Verwendung Rdminitialisieren, benötigen Sie vor dem Senden und Empfangen von Daten keine Remotehostverbindung. Mit Rdm, können Sie mit mehreren Peers kommunizieren.

Seqpacket 5

Bietet verbindungsorientierte und zuverlässige bidirektionale Übertragung von sortierten Bytestreams über ein Netzwerk. Seqpacket dupliziert keine Daten und behält Grenzen innerhalb des Datenstroms bei. Ein Socket Typ Seqpacket kommuniziert mit einem einzelnen Peer und erfordert eine Remotehostverbindung, bevor die Kommunikation beginnen kann.

Beispiele

Im folgenden Beispiel wird als Parameter für den Socket Konstruktor verwendetSocketType.Stream.

//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 mit einem , einem AddressFamilySocketTypeund einem ProtocolType. Die SocketType Aufzählung bietet mehrere Optionen zum Definieren des Typs, den Socket Sie öffnen möchten.

Note

SocketType gibt manchmal implizit an, 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 ist SocketType.Stream, ist dies System.Net.Sockets.ProtocolType immer ProtocolType.Tcp. Wenn Sie versuchen, eine Socket mit einer inkompatiblen Kombination zu erstellen, Socket wird ein SocketException.

Gilt für:

Weitere Informationen