SocketType Enumeration
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
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 ( |
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 ( |
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 ( |
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.