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. Dgramverwendet das Datagram-Protokoll (ProtocolType.Udp) und die AddressFamilyAdressfamilie .InterNetwork

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. Streamverwendet das Transmission Control-Protokoll (ProtocolType.Tcp) und die AddressFamilyAdressfamilie .InterNetwork

Unknown -1

Gibt einen unbekannten Socket-Typ an.

Beispiele

Im folgenden Beispiel wird als Parameter für den Socket Konstruktor 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 ein Socket -Element Daten senden und empfangen kann, muss er zuerst mithilfe von AddressFamily, SocketTypeund erstellt ProtocolTypewerden. Die SocketType Enumeration bietet mehrere Optionen zum Definieren des Typs von, den Socket Sie öffnen möchten.

Hinweis

SocketType gibt manchmal implizit an, welche ProtocolType in einem AddressFamilyverwendet wird. Wenn z. System.Net.Sockets.SocketType B. auf festgelegt ist SocketType.Dgram, ist immer System.Net.Sockets.ProtocolTypeProtocolType.Udp. Wenn auf System.Net.Sockets.SocketType festgelegt istSocketType.Stream, ist immer ProtocolType.TcpSystem.Net.Sockets.ProtocolType . Wenn Sie versuchen, eine Socket mit einer inkompatiblen Kombination zu erstellen, Socket löst eine aus SocketException.

Gilt für:

Weitere Informationen