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

Nombre Valor Description
Unknown -1

Especifica un tipo desconocido Socket .

Stream 1

Admite flujos de bytes confiables basados en conexiones bidireccionales sin la duplicación de datos y sin conservación de límites. Un Socket de este tipo se comunica con un único par y requiere una conexión de host remota antes de que pueda comenzar la comunicación. Streamusa el Protocolo de control de transmisión (ProtocolType.Tcp) y la AddressFamilyfamilia de direcciones .InterNetwork

Dgram 2

Admite datagramas, que son a menos que los mensajes no confiables de una longitud máxima fija (normalmente pequeña). Es posible que los mensajes se pierdan o se dupliquen y puedan llegar fuera de orden. Un Socket de tipo Dgram no requiere ninguna 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. Con Raw, puede comunicarse mediante protocolos como Protocolo de mensajes de control de Internet (ProtocolType.Icmp) y Protocolo de administración de grupos de Internet (ProtocolType.Igmp). La aplicación debe proporcionar un encabezado IP completo al enviar. Los datagramas recibidos devuelven con el encabezado IP y las opciones intactas.

Rdm 4

Admite mensajes sin conexión, orientados a mensajes entregados de forma confiable y conserva los límites de los mensajes en los datos. Los mensajes rdm (mensajes entregados de forma confiable) llegan sin duplicar y en orden. Además, se notifica al remitente si se pierden los mensajes. Si inicializa un Socket mediante Rdm, no necesita una conexión de host remoto antes de enviar y recibir datos. Con Rdm, puede comunicarse con varios elementos del mismo nivel.

Seqpacket 5

Proporciona una transferencia bidireccional confiable y orientada a la conexión de flujos de bytes ordenados a través de una red. Seqpacket no duplica los datos y conserva los límites dentro del flujo de datos. Un Socket de tipo Seqpacket se comunica con un único elemento del mismo nivel y requiere una conexión de host remota antes de que pueda comenzar la comunicación.

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 = 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 debe crearse mediante , AddressFamilyy SocketType.ProtocolType La SocketType enumeración proporciona varias opciones para definir el tipo de Socket que pretende abrir.

Note

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

Se aplica a

Consulte también