SocketType Enumeración
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
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 ( |
| 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 ( |
| Raw | 3 | Admite el acceso al protocolo de transporte subyacente. Con Raw, puede comunicarse mediante protocolos como Protocolo de mensajes de control de Internet ( |
| 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 .