SocketType Enumeração

Definição

Especifica o tipo de soquete que uma instância da classe Socket representa.Specifies the type of socket that an instance of the Socket class represents.

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).Supports datagrams, which are connectionless, unreliable messages of a fixed (typically small) maximum length. As mensagens podem ser perdidas ou duplicadas e podem chegar fora de ordem.Messages might be lost or duplicated and might arrive out of order. 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.A Socket of type Dgram requires no connection prior to sending and receiving data, and can communicate with multiple peers. Dgram usa o Protocolo de Datagrama (ProtocolType.Udp) e o AddressFamily.InterNetworkDgram uses the Datagram Protocol (ProtocolType.Udp) and the AddressFamily.InterNetwork família de endereços.address family.

Raw 3

Dá suporte ao acesso ao protocolo de transporte subjacente.Supports access to the underlying transport protocol. Usando Raw, é possível se comunicar usando protocolos como o protocolo ICMP (ProtocolType.Icmp) e o Protocolo IGMP (ProtocolType.Igmp).Using Raw, you can communicate using protocols like Internet Control Message Protocol (ProtocolType.Icmp) and Internet Group Management Protocol (ProtocolType.Igmp). Seu aplicativo deve fornecer um cabeçalho IP completo no envio.Your application must provide a complete IP header when sending. Datagramas recebidos retornam com o cabeçalho IP e opções intactas.Received datagrams return with the IP header and options intact.

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.Supports connectionless, message-oriented, reliably delivered messages, and preserves message boundaries in data. Mensagens RDM (Mensagens Entregues com Confiança) chegam não duplicadas e em ordem.Rdm (Reliably Delivered Messages) messages arrive unduplicated and in order. Além disso, o remetente será notificado se as mensagens forem perdidas.Furthermore, the sender is notified if messages are lost. Se você inicializar um Socket usando Rdm, não será necessária uma conexão de host remoto antes de enviar e receber dados.If you initialize a Socket using Rdm, you do not require a remote host connection before sending and receiving data. Com Rdm, é possível se comunicar com vários pares.With Rdm, you can communicate with multiple peers.

Seqpacket 5

Fornece a transferência bidirecional confiável e orientada a conexões de fluxos de bytes ordenados em uma rede.Provides connection-oriented and reliable two-way transfer of ordered byte streams across a network. Seqpacket não duplica dados e preserva limites dentro do fluxo de dados.Seqpacket does not duplicate data, and it preserves boundaries within the data stream. 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.A Socket of type Seqpacket communicates with a single peer and requires a remote host connection before communication can begin.

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.Supports reliable, two-way, connection-based byte streams without the duplication of data and without preservation of boundaries. 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.A Socket of this type communicates with a single peer and requires a remote host connection before communication can begin. Stream usa o protocolo TCP (ProtocolType.Tcp) e o AddressFamily.InterNetworkStream uses the Transmission Control Protocol (ProtocolType.Tcp) and the AddressFamily.InterNetwork família de endereços.address family.

Unknown -1

Especifica um tipo Socket desconhecido.Specifies an unknown Socket type.

Exemplos

O exemplo a seguir usa SocketType.Stream como um parâmetro para o Socket Construtor.The following example uses SocketType.Stream as a parameter to the 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 

Comentários

Antes que um Socket possa enviar e receber dados, ele deve ser criado primeiro usando um AddressFamily , um SocketType e um ProtocolType .Before a Socket can send and receive data, it must first be created using an AddressFamily, a SocketType, and a ProtocolType. A SocketType enumeração fornece várias opções para definir o tipo de Socket que você pretende abrir.The SocketType enumeration provides several options for defining the type of Socket that you intend to open.

Observação

SocketType às vezes, implicitamente, indica o que ProtocolType é usado em um AddressFamily .SocketType sometimes implicitly indicates which ProtocolType is used within an AddressFamily. Por exemplo, quando o System.Net.Sockets.SocketType é SocketType.Dgram , o System.Net.Sockets.ProtocolType é sempre ProtocolType.Udp .For example, when the System.Net.Sockets.SocketType is SocketType.Dgram, the System.Net.Sockets.ProtocolType is always ProtocolType.Udp. Quando o System.Net.Sockets.SocketType é SocketType.Stream , o System.Net.Sockets.ProtocolType é sempre ProtocolType.Tcp .When the System.Net.Sockets.SocketType is SocketType.Stream, the System.Net.Sockets.ProtocolType is always ProtocolType.Tcp. Se você tentar criar um Socket com uma combinação incompatível, Socket o lançará um SocketException .If you try to create a Socket with an incompatible combination, Socket throws a SocketException.

Aplica-se a

Confira também