SocketType Výčet

Definice

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
SocketType

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 (ProtocolType.Tcp) a AddressFamilyrodinu adres .InterNetwork

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 (ProtocolType.Udp) a AddressFamilyřadu adres.InterNetwork

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 (ProtocolType.Icmp) a Internet Group Management Protocol (ProtocolType.Igmp). Při odesílání musí vaše aplikace zadat úplnou hlavičku IP adresy. Přijaté datagramy se vrátí s hlavičkou IP a možnostmi beze změny.

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.

Platí pro

Viz také