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
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 ( |
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 ( |
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 ( |
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 debe crearse con , 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 que 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 Socket objeto con una combinación incompatible, Socket inicia una SocketExceptionexcepción .