SocketType Výčet
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Určuje typ soketu, který instance třídy Socket představuje.
public enum class SocketType
public enum SocketType
type SocketType =
Public Enum SocketType
- Dědičnost
Pole
| Name | Hodnota | Description |
|---|---|---|
| Unknown | -1 | Určuje neznámý Socket typ. |
| Stream | 1 | Podporuje spolehlivé obousměrné bajtové datové proudy založené na připojení bez duplikace dat a bez zachování hranic. Tento Socket typ komunikuje s jedním partnerským vztahem a před zahájením komunikace vyžaduje připojení vzdáleného hostitele.
Streampoužívá protokol Transmission Control Protocol ( |
| Dgram | 2 | Podporuje datagramy, což jsou nespolehlivé zprávy s pevnou (obvykle malou) maximální délkou. Zprávy můžou být ztraceny nebo duplikovány a můžou docházet mimo objednávku. Typ SocketDgram nevyžaduje žádné připojení před odesíláním a příjmem dat a může komunikovat s více partnerskými vztahy.
Dgrampoužívá datagramový protokol ( |
| Raw | 3 | Podporuje přístup k podkladovému přenosovému protokolu. Pomocí Raw, můžete komunikovat pomocí protokolů, jako je Internet Control Message Protocol ( |
| Rdm | 4 | Podporuje připojení bez připojení, orientované na zprávy, spolehlivě doručené zprávy a zachovává hranice zpráv v datech. Zprávy Rdm (spolehlivě doručené zprávy) přicházejí příliš zdvojené a v pořadí. Odesílatel je navíc upozorněn, pokud dojde ke ztrátě zpráv. Pokud inicializujete použití Socket, před odesláním a příjmem Rdm dat nevyžadujete připojení vzdáleného hostitele. Pomocí Rdmfunkce můžete komunikovat s více partnerskými vztahy. |
| Seqpacket | 5 | Poskytuje obousměrný přenos uspořádaných bajtů v síti orientovaný na připojení a spolehlivý obousměrný přenos. Seqpacket nezdvojuje data a zachovává hranice v rámci datového proudu. Typ SocketSeqpacket komunikuje s jedním partnerským vztahem a před zahájením komunikace vyžaduje připojení vzdáleného hostitele. |
Příklady
Následující příklad používá SocketType.Stream jako parametr konstruktoru Socket .
//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
Poznámky
Před odesláním a příjmem Socket dat je nutné je nejprve vytvořit pomocí , AddressFamilya SocketTypeProtocolType. Výčet SocketType poskytuje několik možností pro definování typu Socket , který chcete otevřít.
Note
SocketType někdy implicitně označuje, který ProtocolType se používá v rámci AddressFamily. Například když System.Net.Sockets.SocketType je SocketType.Dgram, System.Net.Sockets.ProtocolType je vždy ProtocolType.Udp. System.Net.Sockets.SocketType Když je SocketType.Stream, je System.Net.Sockets.ProtocolType vždy ProtocolType.Tcp. Pokud se pokusíte vytvořit Socket s nekompatibilní kombinací, Socket vyvolá chybu SocketException.