SocketType Wyliczenie
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Określa typ gniazda reprezentowanego przez Socket wystąpienie klasy.
public enum class SocketType
public enum SocketType
type SocketType =
Public Enum SocketType
- Dziedziczenie
Pola
Dgram | 2 | Obsługuje datagramy, które są bez połączenia, niewiarygodne komunikaty o stałej (zazwyczaj małej) maksymalnej długości. Komunikaty mogą zostać utracone lub zduplikowane i mogą zostać wysłane z zamówienia.
Dgram Typ Socket nie wymaga połączenia przed wysłaniem i odbieraniem danych i może komunikować się z wieloma elementami równorzędnymi.
Dgramużywa protokołu Datagram Protocol ( |
Raw | 3 | Obsługuje dostęp do bazowego protokołu transportu. Za pomocą Rawprogramu można komunikować się przy użyciu protokołów, takich jak Internet Control Message Protocol ( |
Rdm | 4 | Obsługuje komunikaty bez połączenia, zorientowane na komunikaty, niezawodnie dostarczane i zachowuje granice komunikatów w danych. Komunikaty rdm (niezawodnie dostarczone komunikaty) docierają do nieuzuplikowanych i w kolejności. Ponadto nadawca jest powiadamiany o utracie komunikatów. Jeśli zainicjujesz metodę Socket za pomocą polecenia Rdm, przed wysłaniem i odebraniem danych nie jest wymagane połączenie hosta zdalnego. Za pomocą Rdmprogramu można komunikować się z wieloma elementami równorzędnymi. |
Seqpacket | 5 | Zapewnia dwukierunkowy i zorientowany na połączenie transfer uporządkowanych strumieni bajtów w sieci. Seqpacket nie duplikuje danych i zachowuje granice w strumieniu danych. Seqpacket Typ Socket komunikuje się z jednym elementem równorzędnym i wymaga połączenia hosta zdalnego przed rozpoczęciem komunikacji. |
Stream | 1 | Obsługuje niezawodne, dwukierunkowe strumienie bajtów oparte na połączeniu bez duplikowania danych i bez zachowywania granic. Typ Socket ten komunikuje się z jednym elementem równorzędnym i wymaga połączenia hosta zdalnego przed rozpoczęciem komunikacji.
Streamużywa protokołu Transmission Control Protocol ( |
Unknown | -1 | Określa nieznany Socket typ. |
Przykłady
W poniższym przykładzie użyto SocketType.Stream jako parametru konstruktora 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
Uwagi
Socket Aby można było wysyłać i odbierać dane, należy najpierw utworzyć je przy użyciu elementu AddressFamily, a SocketTypei ProtocolType. Wyliczenie SocketType zawiera kilka opcji definiowania typu Socket , który ma być otwarty.
Uwaga
SocketType czasami niejawnie wskazuje, który ProtocolType jest używany w obiekcie AddressFamily. Na przykład, gdy parametr System.Net.Sockets.SocketType to , wartość System.Net.Sockets.ProtocolType jest SocketType.Dgramzawsze ProtocolType.Udp. Gdy parametr System.Net.Sockets.SocketType to SocketType.Stream, wartość System.Net.Sockets.ProtocolType jest zawsze ProtocolType.Tcp. Jeśli spróbujesz utworzyć element Socket z niezgodną kombinacją, Socket zwraca wartość SocketException.