SocketType Enumeración

Definición

Especifica el tipo de socket que representa una instancia de la clase Socket.

public enum class SocketType
public enum SocketType
type SocketType = 
Public Enum SocketType
Herencia
SocketType

Campos

Dgram 2

Admite datagramas, que son mensajes no confiables sin conexión con una longitud máxima fija (normalmente corta). Los mensajes pueden perderse o duplicarse y llegar desordenados. Un objeto Socket de tipo Dgram no necesita conexión antes de enviar y recibir datos, y puede comunicarse con varios elementos del mismo nivel. Dgramusa el Protocolo de datagramas (ProtocolType.Udp) y la AddressFamilyfamilia de direcciones .InterNetwork

Raw 3

Admite el acceso al protocolo de transporte subyacente. Al usar Raw, se puede comunicar mediante protocolos como el Protocolo de mensajes de control de Internet (ProtocolType.Icmp) y el Protocolo de administración de grupos de Internet (ProtocolType.Igmp). La aplicación debe proporcionar un encabezado IP completo al realizar envíos. Los datagramas recibidos se devuelven con el encabezado IP y las opciones intactas.

Rdm 4

Admite mensajes entregados con confianza orientados a mensajes sin conexión y conserva los límites de mensaje en los datos. Los mensajes entregados con confianza (Rdm) llegan sin duplicidad y ordenados. Más aún, el remitente recibe notificación en caso de producirse pérdida de mensajes. Si Socket se inicializa con Rdm, no será necesaria una conexión al host remoto antes de enviar y recibir datos. Con Rdm se puede establecer comunicación con varios elementos del mismo nivel.

Seqpacket 5

Proporciona la transferencia bidireccional, confiable y basada en conexiones, de secuencias de bytes ordenadas a través de una red. Seqpacket no duplica los datos y mantiene los límites dentro del flujo de datos. Las clases Socket de tipo Seqpacket se comunican con un solo elemento del mismo nivel y requieren una conexión con el host remoto para poder iniciar la comunicación.

Stream 1

Admite secuencias de bytes bidireccionales confiables, basadas en conexión, sin duplicidad de datos ni conservación de límites. Un objeto Socket de este tipo se comunica con un solo elemento del mismo nivel y requiere una conexión con el host remoto para poder iniciar la comunicación. Streamusa el Protocolo de control de transmisión (ProtocolType.Tcp) y la AddressFamilyfamilia de direcciones .InterNetwork

Unknown -1

Especifica un tipo de Socket desconocido.

Ejemplos

En el ejemplo siguiente se usa SocketType.Stream como parámetro para el Socket constructor .

//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

Comentarios

Socket Para poder enviar y recibir datos, primero se debe crear mediante , AddressFamilyy SocketType.ProtocolType La SocketType enumeración proporciona varias opciones para definir el tipo de Socket que desea abrir.

Nota:

SocketTypea veces indica implícitamente qué ProtocolType se usa dentro de .AddressFamily Por ejemplo, cuando System.Net.Sockets.SocketType es SocketType.Dgram, siempre System.Net.Sockets.ProtocolType es ProtocolType.Udp. System.Net.Sockets.SocketType Cuando es SocketType.Stream, siempre System.Net.Sockets.ProtocolType es ProtocolType.Tcp. Si intenta crear un objeto Socket con una combinación incompatible, Socket inicia una SocketExceptionexcepción .

Se aplica a

Consulte también