SocketType Enumeráció

Definíció

Megadja, hogy az osztály egy példánya milyen típusú szoftvercsatornát Socket jelöl.

public enum class SocketType
public enum SocketType
type SocketType = 
Public Enum SocketType
Öröklődés
SocketType

Mezők

Name Érték Description
Unknown -1

Ismeretlen Socket típust ad meg.

Stream 1

Támogatja a megbízható, kétirányú, kapcsolatalapú bájtfolyamokat az adatok duplikálása és a határok megőrzése nélkül. Az Socket ilyen típusúak egyetlen társsal kommunikálnak, és távoli gazdakapcsolatot igényelnek a kommunikáció megkezdése előtt. Stream A Transmission Control Protocol (ProtocolType.Tcp) és a AddressFamily.InterNetwork címcsaládot használja.

Dgram 2

Támogatja a rögzített (általában kis) maximális hosszúságú, kapcsolat nélküli, megbízhatatlan üzeneteket tartalmazó datagramokat. Előfordulhat, hogy az üzenetek elvesznek vagy duplikálva érkeznek, és nem lesznek sorrendben. A Socket típushoz Dgram nincs szükség kapcsolatra az adatok küldése és fogadása előtt, és több társsal is kommunikálhat. Dgram A Datagram Protocol (ProtocolType.Udp) és a AddressFamily.InterNetwork címcsaládot használja.

Raw 3

Támogatja a mögöttes átviteli protokollhoz való hozzáférést. A használatával Rawolyan protokollokkal kommunikálhat, mint az Internet Control Message Protocol (ProtocolType.Icmp) és az Internet Group Management Protocol (ProtocolType.Igmp). Az alkalmazásnak teljes IP-fejlécet kell megadnia küldéskor. A fogadott datagramok az IP-fejléc és a beállítások érintetlen állapotával térnek vissza.

Rdm 4

Támogatja a kapcsolat nélküli, üzenetorientált, megbízhatóan kézbesített üzeneteket, és megőrzi az üzenetek határait az adatokban. Az RDM-üzenetek (megbízhatóan kézbesített üzenetek) nem duplikáltan és sorrendben érkeznek. Ezenkívül a küldő értesítést kap, ha az üzenetek elvesznek. Ha inicializál egy Socket eszközt Rdm, az adatok elküldése és fogadása előtt nincs szükség távoli gazdagépkapcsolatra. Ezzel Rdmtöbb társsal is kommunikálhat.

Seqpacket 5

Kapcsolatorientált és megbízható kétirányú átvitelt biztosít a rendezett bájtfolyamok hálózaton keresztül. Seqpacket nem duplikálja az adatokat, és megőrzi az adatfolyamon belüli határokat. Egy Socket típus Seqpacket egyetlen társsal kommunikál, és távoli gazdakapcsolatot igényel a kommunikáció megkezdése előtt.

Példák

Az alábbi példa paraméterként használja SocketType.Stream a Socket konstruktort.

//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

Megjegyzések

Ahhoz, hogy egy Socket felhasználó adatokat küldjön és fogadjon, először létre kell hoznia egy AddressFamily, egy SocketTypeés egy ProtocolType. Az SocketType enumerálás számos lehetőséget kínál a megnyitni kívánt típus Socket meghatározására.

Note

SocketType néha implicit módon jelzi, hogy melyiket ProtocolType használja egy AddressFamily. Ha például az System.Net.Sockets.SocketType , SocketType.Dgramakkor az System.Net.Sockets.ProtocolType mindig ProtocolType.Udp. Ha az System.Net.Sockets.SocketType , SocketType.Streamaz System.Net.Sockets.ProtocolType mindig ProtocolType.Tcp. Ha inkompatibilis kombinációt próbál létrehozni Socket , Socket egy SocketException.

A következőre érvényes:

Lásd még