Compartilhar via


SocketType Enumeração

Definição

Especifica o tipo de soquete que uma instância da classe Socket representa.

public enum class SocketType
public enum SocketType
type SocketType = 
Public Enum SocketType
Herança
SocketType

Campos

Dgram 2

Dá suporte a datagramas, mensagens sem conexão e não confiáveis de um comprimento máximo fixo (normalmente pequeno). As mensagens podem ser perdidas ou duplicadas e podem chegar fora de ordem. Um Socket do tipo Dgram não exige nenhuma conexão antes de enviar e receber dados e pode se comunicar com vários pares. Dgramusa o Protocolo datagram (ProtocolType.Udp) e a AddressFamilyfamília de endereços .InterNetwork

Raw 3

Dá suporte ao acesso ao protocolo de transporte subjacente. Usando Raw, é possível se comunicar usando protocolos como o protocolo ICMP (ProtocolType.Icmp) e o Protocolo IGMP (ProtocolType.Igmp). Seu aplicativo deve fornecer um cabeçalho IP completo no envio. Datagramas recebidos retornam com o cabeçalho IP e opções intactas.

Rdm 4

Dá suporte a mensagens entregues com confiança, sem conexão e orientadas a mensagens e preserva os limites das mensagens em dados. Mensagens RDM (Mensagens Entregues com Confiança) chegam não duplicadas e em ordem. Além disso, o remetente será notificado se as mensagens forem perdidas. Se você inicializar um Socket usando Rdm, não será necessária uma conexão de host remoto antes de enviar e receber dados. Com Rdm, é possível se comunicar com vários pares.

Seqpacket 5

Fornece a transferência bidirecional confiável e orientada a conexões de fluxos de bytes ordenados em uma rede. Seqpacket não duplica dados e preserva limites dentro do fluxo de dados. Um Socket de tipo Seqpacket se comunica com um par único e requer uma conexão de host remoto antes de a comunicação começar.

Stream 1

Dá suporte a fluxos de bytes bidirecionais, confiáveis e baseados em conexão sem a duplicação de dados e sem a preservação de limites. Um Socket desse tipo se comunica com um par único e requer uma conexão de host remoto antes de a comunicação começar. Streamusa o Protocolo de Controle de Transmissão (ProtocolType.Tcp) e a AddressFamilyfamília de endereços .InterNetwork

Unknown -1

Especifica um tipo Socket desconhecido.

Exemplos

O exemplo a seguir usa SocketType.Stream como um parâmetro para o Socket construtor .

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

Comentários

Antes que um Socket possa enviar e receber dados, ele deve primeiro ser criado usando um AddressFamily, um SocketTypee um ProtocolType. A SocketType enumeração fornece várias opções para definir o tipo de Socket que você pretende abrir.

Observação

SocketType às vezes indica implicitamente qual ProtocolType é usado em um AddressFamily. Por exemplo, quando o System.Net.Sockets.SocketType é SocketType.Dgram, o System.Net.Sockets.ProtocolType é sempre ProtocolType.Udp. Quando o System.Net.Sockets.SocketType é SocketType.Stream, o System.Net.Sockets.ProtocolType é sempre ProtocolType.Tcp. Se você tentar criar um com uma Socket combinação incompatível, Socket gerará um SocketException.

Aplica-se a

Confira também