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 Socket třídy představuje.
public enum class SocketType
public enum SocketType
type SocketType =
Public Enum SocketType
- Dědičnost
Pole
Dgram | 2 | Podporuje datovégramy, které jsou bez připojení, nespolehlivé zprávy s pevnou (obvykle malou) maximální délkou. Zprávy můžou být ztraceny nebo duplikovány a mohou docházet mimo objednávku. Typ Socket Dgram 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. Dgram používá Datagram Protocol ( |
Raw | 3 | Podporuje přístup k základní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š duplicitní a v pořádku. Odesílatel je navíc upozorněn, pokud dojde ke ztrátě zpráv. Pokud inicializujete použití Rdm, před odesláním Socket a příjmem 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ý přenos bajtů. Seqpacket ne duplikuje data a zachovává hranice v rámci datového proudu. Seqpacket Typ Socket komunikuje s jedním partnerským vztahem a před zahájením komunikace vyžaduje připojení vzdáleného hostitele. |
Stream | 1 | Podporuje spolehlivé obousměrné bajtové datové proudy založené na připojení bez duplicit 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. Stream použí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
Před odesláním a příjmem Socket dat musí být nejprve vytvořena pomocí objektu AddressFamily, a SocketTypeProtocolType. Výčet SocketType poskytuje několik možností definování typu Socket , který chcete otevřít.
Poznámka
SocketTypeněkdy implicitně označuje, která ProtocolType se používá v rámci .AddressFamily Například když System.Net.Sockets.SocketType je , System.Net.Sockets.ProtocolType je SocketType.DgramProtocolType.Udpvždy . System.Net.Sockets.SocketType Když je , System.Net.Sockets.ProtocolType je SocketType.Streamvždy ProtocolType.Tcp. Pokud se pokusíte vytvořit Socket s nekompatibilní kombinací, Socket vyvolá SocketExceptionchybu .