SocketType Enum
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee geeft u het type socket op dat een exemplaar van de Socket klasse vertegenwoordigt.
public enum class SocketType
public enum SocketType
type SocketType =
Public Enum SocketType
- Overname
Velden
| Name | Waarde | Description |
|---|---|---|
| Unknown | -1 | Hiermee geeft u een onbekend Socket type. |
| Stream | 1 | Ondersteunt betrouwbare, tweerichtings-bytestromen op basis van verbindingen zonder de duplicatie van gegevens en zonder behoud van grenzen. Een Socket van dit type communiceert met één peer en vereist een externe hostverbinding voordat de communicatie kan beginnen.
Stream maakt gebruik van het Transmission Control Protocol ( |
| Dgram | 2 | Ondersteunt datagrammen, die verbindingsloze, onbetrouwbare berichten met een vaste (meestal kleine) maximale lengte zijn. Berichten zijn mogelijk verloren of gedupliceerd en komen mogelijk niet in orde. Een Socket van het type Dgram vereist geen verbinding voordat gegevens worden verzonden en ontvangen en kan communiceren met meerdere peers.
Dgramgebruikt het Datagram Protocol ( |
| Raw | 3 | Ondersteunt toegang tot het onderliggende transportprotocol. U Rawkunt communiceren met behulp van protocollen zoals Internet Control Message Protocol ( |
| Rdm | 4 | Ondersteunt verbindingsloze, berichtengeoriënteerde, betrouwbaar bezorgde berichten en behoudt berichtgrenzen in gegevens. Rdm-berichten (betrouwbaar bezorgde berichten) komen niet-gedupliceerd en in volgorde binnen. Bovendien wordt de afzender op de hoogte gesteld als berichten verloren gaan. Als u een Socket using Rdminitialiseert, hebt u geen externe hostverbinding nodig voordat u gegevens verzendt en ontvangt. Met Rdm, kunt u communiceren met meerdere peers. |
| Seqpacket | 5 | Biedt verbindingsgeoriënteerde en betrouwbare tweerichtingsoverdracht van geordende bytestromen in een netwerk. Seqpacket dupliceren geen gegevens en behoudt grenzen binnen de gegevensstroom. Een Socket van het type Seqpacket communiceert met één peer en vereist een externe hostverbinding voordat de communicatie kan beginnen. |
Voorbeelden
In het volgende voorbeeld wordt SocketType.Stream gebruikgemaakt van een parameter voor de Socket constructor.
//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
Opmerkingen
Voordat een Socket gegevens kan worden verzonden en ontvangen, moet deze eerst worden gemaakt met een AddressFamily, a SocketTypeen een ProtocolType. De SocketType opsomming biedt verschillende opties voor het definiëren van Socket het type dat u wilt openen.
Note
SocketType geeft soms impliciet aan welke ProtocolType wordt gebruikt binnen een AddressFamily. Als dat System.Net.Sockets.SocketType bijvoorbeeld het is SocketType.Dgram, is het System.Net.Sockets.ProtocolType altijd ProtocolType.Udp. Wanneer dat System.Net.Sockets.SocketType het is SocketType.Stream, is het System.Net.Sockets.ProtocolType altijd ProtocolType.Tcp. Als u probeert een Socket met een incompatibele combinatie te maken, Socket genereert u een SocketException.