SocketType Výčet

Definice

Určuje typ soketu, který představuje instance Socket třídy.

public enum class SocketType
public enum SocketType
type SocketType = 
Public Enum SocketType
Dědičnost
SocketType

Pole

Dgram 2

Podporuje datagramy, což jsou nespolehlivé zprávy bez připojení s pevnou (obvykle malou) maximální délkou. Zprávy se můžou ztratit nebo duplikovat a můžou docházet mimo pořadí. Typ Dgram A Socket nevyžaduje žádné připojení před odesíláním a přijímáním dat a může komunikovat s více partnerskými partnery. Dgrampoužívá protokol Datagram (ProtocolType.Udp) a AddressFamilyřadu adres .InterNetwork

Raw 3

Podporuje přístup k podkladovému přenosovému protokolu. Pomocí Rawnástroje můžete komunikovat pomocí protokolů, jako je Internet Control Message Protocol (ProtocolType.Icmp) a Internet Group Management Protocol (ProtocolType.Igmp). Vaše aplikace musí při odesílání poskytnout úplnou hlavičku IP adresy. Přijaté datagramy se vrací s nedotčenou hlavičkou IP adresy a možnostmi.

Rdm 4

Podporuje zprávy bez připojení, orientované na zprávy, spolehlivě doručované zprávy a zachovává hranice zpráv v datech. Zprávy Rdm (Spolehlivě doručené zprávy) přicházejí nepatřičně a v pořadí. Kromě toho je odesílatel upozorněn, pokud dojde ke ztrátě zpráv. Pokud inicializujete Socket pomocí Rdmnástroje , nevyžadujete připojení ke vzdálenému hostiteli před odesíláním a přijímáním dat. Pomocí Rdmmůžete komunikovat s více partnerskými partnery.

Seqpacket 5

Poskytuje obousměrný přenos uspořádaných bajtů datových proudů v síti orientovaný na připojení. Seqpacket neduplikuje data a zachovává hranice v rámci datového proudu. Typ Seqpacket A Socket komunikuje s jedním partnerským vztahem a před zahájením komunikace vyžaduje připojení ke vzdálenému hostiteli.

Stream 1

Podporuje spolehlivé dvoucestné bajtové datové proudy založené na připojení bez duplikování dat a bez zachování hranic. A Socket tohoto typu komunikuje s jedním partnerským vztahem a před zahájením komunikace vyžaduje připojení ke vzdálenému hostiteli. Streampoužívá protokol Transmission Control Protocol (ProtocolType.Tcp) a AddressFamilyřadu adres .InterNetwork

Unknown -1

Určuje neznámý Socket typ.

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 = gcnew 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.
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

Než může objekt Socket odesílat a přijímat data, musí být nejprve vytvořen pomocí AddressFamily, SocketTypea .ProtocolType Výčet SocketType poskytuje několik možností pro definování typu Socket , který chcete otevřít.

Poznámka

SocketType někdy implicitně označuje, která ProtocolType se používá v rámci objektu AddressFamily. Pokud je například System.Net.Sockets.SocketTypeSocketType.Dgramhodnota , je System.Net.Sockets.ProtocolType vždy ProtocolType.Udp. Pokud je System.Net.Sockets.SocketTypeSocketType.Stream, je System.Net.Sockets.ProtocolType vždy ProtocolType.Tcp. Pokud se pokusíte vytvořit nekompatibilní Socket kombinaci, Socket vyvolá chybu SocketException.

Platí pro

Viz také