Freigeben über


SocketType-Enumeration

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

Namespace: System.Net.Sockets
Assembly: System (in system.dll)

Syntax

'Declaration
Public Enumeration SocketType
'Usage
Dim instance As SocketType
public enum SocketType
public enum class SocketType
public enum SocketType
public enum SocketType

Member

  Membername Beschreibung
Unterstützt von .NET Compact Framework Dgram Unterstützt Datagramme, die verbindungslose, unzuverlässige Meldungen mit einer festen (i. d. R. kleinen) maximalen Länge sind. Meldungen können verloren gehen, dupliziert 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 (Udp) und die InterNetworkAddressFamily
Unterstützt von .NET Compact Framework Raw Unterstützt den Zugriff auf das zugrunde liegende Übertragungsprotokoll. Wenn Sie den SocketTypeRaw verwenden, können Sie für die Kommunikation Protokolle wie das Internet Control Message Protocol (Icmp) und das Internet Group Management Protocol (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. 
Unterstützt von .NET Compact Framework Rdm 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. 
Unterstützt von .NET Compact Framework Seqpacket 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. 
Unterstützt von .NET Compact Framework Stream 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 als ProtocolType Transmission Control Protocol (Tcp) und die InterNetworkAddressFamily
Unterstützt von .NET Compact Framework Unknown Gibt einen unbekannten Socket-Typ an. 

Hinweise

Bevor ein Socket Daten senden und empfangen kann, muss er zuerst mit einer AddressFamily, einem SocketType und einem ProtocolType erstellt werden. Die SocketType-Enumeration stellt mehrere Optionen bereit, mit denen der Typ des Socket definiert werden kann, den Sie öffnen möchten.

Hinweis

SocketType gibt ggf. implizit an, welcher ProtocolType in einer AddressFamily verwendet wird. Wenn z. B. SocketType gleich Dgram ist, ist der ProtocolType immer Udp. Wenn der SocketType gleich Stream ist, ist der ProtocolType immer Tcp. Wenn Sie versuchen, einen Socket mit einer nicht kompatiblen Kombination zu erstellen, löst Socket eine SocketException aus.

Beispiel

Im folgenden Beispiel wird ein Stream-Enumerationsmember als Parameter für den Socket-Konstruktor verwendet.

'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 
//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.
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.get_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 should not print."
            + "Because this is not a listening Socket,"
            + " no incoming connecton requests are expected. ");
    }
    else {
        if (s.Poll(-1, SelectMode.SelectError)) {
            Console.WriteLine("This Socket has an error.");
        }
    }
}

Plattformen

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 2.0, 1.0

Siehe auch

Referenz

System.Net.Sockets-Namespace
AddressFamily-Enumeration
ProtocolType-Enumeration
Socket-Klasse