SocketType Enumeração
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Especifica o tipo de soquete que uma instância da Socket classe representa.
public enum class SocketType
public enum SocketType
type SocketType =
Public Enum SocketType
- Herança
Campos
| Name | Valor | Description |
|---|---|---|
| Unknown | -1 | Especifica um tipo desconhecido Socket . |
| Stream | 1 | Suporta fluxos de bytes fiáveis, bidirecionais e baseados em ligação, sem duplicação de dados e sem preservação de fronteiras. A deste tipo comunica com um único par e requer uma ligação remota ao host antes de Socket a comunicação poder começar.
Streamutiliza o Protocolo de Controlo de Transmissão ( |
| Dgram | 2 | Suporta datagramas, que são mensagens sem ligação e pouco fiáveis de comprimento máximo fixo (tipicamente pequeno). As mensagens podem perder-se ou duplicar-se e chegar fora de ordem. Um de tipo Dgram A Socket não requer ligação antes de enviar e receber dados, podendo comunicar com múltiplos pares.
Dgramutiliza o Protocolo de Datagramas ( |
| Raw | 3 | Suporta o acesso ao protocolo de transporte subjacente. Usando Raw, pode comunicar usando protocolos como o Protocolo de Mensagens de Controlo da Internet ( |
| Rdm | 4 | Suporta mensagens sem conexão, orientadas a mensagens, entregues de forma fiável e preserva os limites das mensagens nos dados. As mensagens Rdm (Refiably Delivered Messages) chegam sem duplicação e em ordem. Além disso, o remetente é notificado se as mensagens forem perdidas. Se inicializar um Socket usando Rdm, não precisa de uma ligação remota ao host antes de enviar e receber dados. Com Rdm, pode comunicar com vários pares. |
| Seqpacket | 5 | Proporciona transferência bidirecional orientada à ligação e fiável de fluxos de bytes ordenados através de uma rede. Seqpacket não duplica dados e preserva os limites dentro do fluxo de dados. A do tipo Seqpacket A comunica com um único par e necessita de uma ligação remota ao host antes de Socket a comunicação poder começar. |
Exemplos
O exemplo seguinte usa SocketType.Stream como parâmetro do Socket construtor.
//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
Observações
Antes de um Socket poder enviar e receber dados, deve primeiro ser criado usando um AddressFamily, um SocketType, e um ProtocolType. A SocketType enumeração oferece várias opções para definir o tipo que Socket pretende abrir.
Note
SocketType por vezes indica implicitamente qual ProtocolType é usado dentro de um AddressFamily. Por exemplo, quando o System.Net.Sockets.SocketType é , o System.Net.Sockets.ProtocolType é sempre ProtocolType.UdpSocketType.Dgram. Quando o System.Net.Sockets.SocketType é , o System.Net.Sockets.ProtocolType é sempre ProtocolType.TcpSocketType.Stream. Se tentar criar um Socket com uma combinação incompatível, Socket lança um SocketException.