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 Typ des Sockets an, den eine Instanz der Socket-Klasse darstellt.
public enum class SocketType
public enum SocketType
type SocketType =
Public Enum SocketType
- Vererbung
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 ( |
| 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 ( |
| Raw | 3 | Unterstützt den Zugriff auf das zugrunde liegende Transportprotokoll. Mithilfe von |
| 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.