SocketType Enumeráció
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
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
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 ( |
| 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 ( |
| 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 ( |
| 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.