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ý představuje instance Socket třídy.
public enum class SocketType
public enum SocketType
type SocketType =
Public Enum SocketType
- Dědičnost
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 ( |
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 ( |
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 ( |
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.