Socket Classe
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.
Implementa a interface de soquetes Berkeley.
public ref class Socket : IDisposable
public class Socket : IDisposable
type Socket = class
interface IDisposable
Public Class Socket
Implements IDisposable
- Herança
-
Socket
- Implementações
Exemplos
O exemplo seguinte mostra como a Socket classe pode ser usada para enviar dados para um servidor HTTP, imprimindo a resposta ASCII à saída padrão. Este exemplo bloqueia a thread que chama até que toda a página seja recebida.
private static void SendHttpRequest(Uri? uri = null, int port = 80)
{
uri ??= new Uri("http://example.com");
// Construct a minimalistic HTTP/1.1 request
byte[] requestBytes = Encoding.ASCII.GetBytes(@$"GET {uri.AbsoluteUri} HTTP/1.0
Host: {uri.Host}
Connection: Close
");
// Create and connect a dual-stack socket
using Socket socket = new Socket(SocketType.Stream, ProtocolType.Tcp);
socket.Connect(uri.Host, port);
// Send the request.
// For the tiny amount of data in this example, the first call to Send() will likely deliver the buffer completely,
// however this is not guaranteed to happen for larger real-life buffers.
// The best practice is to iterate until all the data is sent.
int bytesSent = 0;
while (bytesSent < requestBytes.Length)
{
bytesSent += socket.Send(requestBytes, bytesSent, requestBytes.Length - bytesSent, SocketFlags.None);
}
// Do minimalistic buffering assuming ASCII response
byte[] responseBytes = new byte[256];
char[] responseChars = new char[256];
while (true)
{
int bytesReceived = socket.Receive(responseBytes);
// Receiving 0 bytes means EOF has been reached
if (bytesReceived == 0) break;
// Convert byteCount bytes to ASCII characters using the 'responseChars' buffer as destination
int charCount = Encoding.ASCII.GetChars(responseBytes, 0, bytesReceived, responseChars, 0);
// Print the contents of the 'responseChars' buffer to Console.Out
Console.Out.Write(responseChars, 0, charCount);
}
}
O exemplo seguinte demonstra o mesmo cenário HTTP GET, usando APIs assíncronas baseadas em tarefas, enquanto também encaminha a CancellationToken para os métodos assíncronos, tornando toda a operação cancelável.
Sugestão
Socketos métodos assíncronos que não tomam um CancellationToken normalmente retornam um Task, que é alocado no heap. Sobrecargas canceláveis estão sempre ValueTaska regressar; utilizá-las ajuda a reduzir alocações em código de alto desempenho.
private static async Task SendHttpRequestAsync(Uri? uri = null, int port = 80, CancellationToken cancellationToken = default)
{
uri ??= new Uri("http://example.com");
// Construct a minimalistic HTTP/1.1 request
byte[] requestBytes = Encoding.ASCII.GetBytes(@$"GET {uri.AbsoluteUri} HTTP/1.1
Host: {uri.Host}
Connection: Close
");
// Create and connect a dual-stack socket
using Socket socket = new Socket(SocketType.Stream, ProtocolType.Tcp);
await socket.ConnectAsync(uri.Host, port, cancellationToken);
// Send the request.
// For the tiny amount of data in this example, the first call to SendAsync() will likely deliver the buffer completely,
// however this is not guaranteed to happen for larger real-life buffers.
// The best practice is to iterate until all the data is sent.
int bytesSent = 0;
while (bytesSent < requestBytes.Length)
{
bytesSent += await socket.SendAsync(requestBytes.AsMemory(bytesSent), SocketFlags.None);
}
// Do minimalistic buffering assuming ASCII response
byte[] responseBytes = new byte[256];
char[] responseChars = new char[256];
while (true)
{
int bytesReceived = await socket.ReceiveAsync(responseBytes, SocketFlags.None, cancellationToken);
// Receiving 0 bytes means EOF has been reached
if (bytesReceived == 0) break;
// Convert byteCount bytes to ASCII characters using the 'responseChars' buffer as destination
int charCount = Encoding.ASCII.GetChars(responseBytes, 0, bytesReceived, responseChars, 0);
// Print the contents of the 'responseChars' buffer to Console.Out
await Console.Out.WriteAsync(responseChars.AsMemory(0, charCount), cancellationToken);
}
}
Observações
Para mais informações sobre esta API, consulte Observações Suplementares da API para o Socket.
Construtores
| Name | Description |
|---|---|
| Socket(AddressFamily, SocketType, ProtocolType) |
Inicializa uma nova instância da Socket classe usando a família de endereços, tipo de socket e protocolo especificados. |
| Socket(SocketInformation) |
Inicializa uma nova instância da Socket classe usando o valor especificado devolvido de DuplicateAndClose(Int32). |
| Socket(SocketType, ProtocolType) |
Inicializa uma nova instância da Socket classe usando o tipo de socket e protocolo especificados. Se o sistema operativo suportar IPv6, este construtor cria um soquete de modo duplo; caso contrário, cria um soquete IPv4. |
Propriedades
| Name | Description |
|---|---|
| AddressFamily |
Obtém a família de endereços do Socket. |
| Available |
Obtém a quantidade de dados recebida da rede e que está disponível para leitura. |
| Blocking |
Recebe ou define um valor que indica se o Socket está em modo de bloqueio. |
| Connected |
Obtém um valor que indica se a Socket está ligado a um host remoto na última Send operação.Receive |
| DontFragment |
Recebe ou define um valor que especifica se permite Socket que datagramas de Protocolo de Internet (IP) sejam fragmentados. |
| DualMode |
Recebe ou define um valor que especifica se o Socket é um socket de modo duplo usado tanto para IPv4 como para IPv6. |
| EnableBroadcast |
Recebe ou define um Boolean valor que especifica se pode Socket enviar pacotes de broadcast. |
| ExclusiveAddressUse |
Recebe ou define um valor que indica se permite Socket que apenas um processo se ligue a uma porta. |
| Handle |
Faz com que o sistema operativo seja controlado para o Socket. |
| IsBound |
Obtém um valor que indica se está Socket vinculado a uma porta local específica. |
| LingerState |
Recebe ou define um valor que especifica se irá Socket atrasar o encerramento de um socket numa tentativa de enviar todos os dados pendentes. |
| LocalEndPoint |
Obtém o endpoint local. |
| MulticastLoopback |
Recebe ou define um valor que especifica se os pacotes multicast de saída são entregues à aplicação emissora. |
| NoDelay |
Recebe ou define um Boolean valor que especifica se o fluxo Socket está a usar o algoritmo de Nagle. |
| OSSupportsIPv4 |
Indica se o sistema operativo subjacente e os adaptadores de rede suportam o Protocolo de Internet versão 4 (IPv4). |
| OSSupportsIPv6 |
Indica se o sistema operativo subjacente e os adaptadores de rede suportam o Protocolo de Internet versão 6 (IPv6). |
| ProtocolType |
Obtém o tipo de protocolo do Socket. |
| ReceiveBufferSize |
Obtém ou define um valor que especifica o tamanho do buffer de receção do Socket. |
| ReceiveTimeout |
Recebe ou define um valor que especifica o tempo após o qual uma chamada síncrona Receive irá expirar. |
| RemoteEndPoint |
Fica com o endpoint remoto. |
| SendBufferSize |
Obtém ou define um valor que especifica o tamanho do buffer de envio do Socket. |
| SendTimeout |
Recebe ou define um valor que especifica o tempo após o qual uma chamada síncrona Send irá expirar. |
| SocketType |
Obtém o tipo do Socket. |
| SupportsIPv4 |
Obsoleto.
Obsoleto.
Recebe um valor que indica se o suporte IPv4 está disponível e ativado no host atual. |
| SupportsIPv6 |
Obsoleto.
Obsoleto.
Recebe um valor que indica se o Framework suporta IPv6 para certos membros obsoletos Dns . |
| Ttl |
Recebe ou define um valor que especifica o valor Time To Live (TTL) dos pacotes de Protocolo de Internet (IP) enviados pelo Socket. |
| UseOnlyOverlappedIO |
Recebe ou define um valor que especifica se o socket deve usar apenas o modo de E/S sobreposto. No .NET 5+ (incluindo .NET versões Core), o valor é sempre |
Métodos
| Name | Description |
|---|---|
| Accept() |
Cria uma nova Socket ligação para uma ligação recém-criada. |
| AcceptAsync(SocketAsyncEventArgs) |
Inicia uma operação assíncrona para aceitar uma tentativa de ligação recebida. |
| BeginAccept(AsyncCallback, Object) |
Inicia uma operação assíncrona para aceitar uma tentativa de ligação recebida. |
| BeginAccept(Int32, AsyncCallback, Object) |
Inicia uma operação assíncrona para aceitar uma tentativa de ligação recebida e recebe o primeiro bloco de dados enviado pela aplicação cliente. |
| BeginAccept(Socket, Int32, AsyncCallback, Object) |
Inicia uma operação assíncrona para aceitar uma tentativa de ligação de entrada a partir de um socket especificado e recebe o primeiro bloco de dados enviado pela aplicação cliente. |
| BeginConnect(EndPoint, AsyncCallback, Object) |
Inicia um pedido assíncrono para uma ligação remota ao host. |
| BeginConnect(IPAddress, Int32, AsyncCallback, Object) |
Inicia um pedido assíncrono para uma ligação remota ao host. O host é especificado por um IPAddress e um número de porta. |
| BeginConnect(IPAddress[], Int32, AsyncCallback, Object) |
Inicia um pedido assíncrono para uma ligação remota ao host. O host é especificado por um IPAddress array e um número de porta. |
| BeginConnect(String, Int32, AsyncCallback, Object) |
Inicia um pedido assíncrono para uma ligação remota ao host. O host é especificado por um nome de host e um número de porta. |
| BeginDisconnect(Boolean, AsyncCallback, Object) |
Inicia um pedido assíncrono para desligar de um endpoint remoto. |
| BeginReceive(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object) |
Começa a receber dados assíncronos de um .Socket |
| BeginReceive(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object) |
Começa a receber dados assíncronos de um .Socket |
| BeginReceive(IList<ArraySegment<Byte>>, SocketFlags, AsyncCallback, Object) |
Começa a receber dados assíncronos de um .Socket |
| BeginReceive(IList<ArraySegment<Byte>>, SocketFlags, SocketError, AsyncCallback, Object) |
Começa a receber dados assíncronos de um .Socket |
| BeginReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object) |
Começa a receber dados de forma assíncrona de um dispositivo de rede especificado. |
| BeginReceiveMessageFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object) |
Começa a receber assíncronamente o número especificado de bytes de dados na localização especificada do buffer de dados, usando o especificado SocketFlags, e armazena a informação do endpoint e do pacote. |
| BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object) |
Envia dados assíncronos para um .Socket |
| BeginSend(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object) |
Envia dados assíncronos para um .Socket |
| BeginSend(IList<ArraySegment<Byte>>, SocketFlags, AsyncCallback, Object) |
Envia dados assíncronos para um .Socket |
| BeginSend(IList<ArraySegment<Byte>>, SocketFlags, SocketError, AsyncCallback, Object) |
Envia dados assíncronos para um .Socket |
| BeginSendFile(String, AsyncCallback, Object) |
Envia o ficheiro |
| BeginSendFile(String, Byte[], Byte[], TransmitFileOptions, AsyncCallback, Object) |
Envia um ficheiro e buffers de dados de forma assíncrona para um objeto ligado Socket . |
| BeginSendTo(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object) |
Envia dados de forma assíncrona para um host remoto específico. |
| Bind(EndPoint) |
Associa a Socket a um endpoint local. |
| CancelConnectAsync(SocketAsyncEventArgs) |
Cancela um pedido assíncrono para uma ligação remota ao host. |
| Close() |
Fecha a Socket ligação e liberta todos os recursos associados. |
| Close(Int32) |
Fecha a Socket ligação e liberta todos os recursos associados com um timeout especificado para permitir o envio de dados em fila. |
| Connect(EndPoint) |
Estabelece uma ligação a um host remoto. |
| Connect(IPAddress, Int32) |
Estabelece uma ligação a um host remoto. O host é especificado por um endereço IP e um número de porta. |
| Connect(IPAddress[], Int32) |
Estabelece uma ligação a um host remoto. O host é especificado por um array de endereços IP e um número de porta. |
| Connect(String, Int32) |
Estabelece uma ligação a um host remoto. O host é especificado por um nome de host e um número de porta. |
| ConnectAsync(SocketAsyncEventArgs) |
Inicia um pedido assíncrono para ligação a um host remoto. |
| ConnectAsync(SocketType, ProtocolType, SocketAsyncEventArgs) |
Inicia um pedido assíncrono para ligação a um host remoto. |
| Disconnect(Boolean) |
Fecha a ligação da tomada e permite a reutilização da tomada. |
| DisconnectAsync(SocketAsyncEventArgs) |
Inicia um pedido assíncrono para desligar de um endpoint remoto. |
| Dispose() |
Liberta todos os recursos usados pela instância atual da Socket classe. |
| Dispose(Boolean) |
Liberta os recursos não geridos usados pelo Socket, e opcionalmente elimina os recursos geridos. |
| DuplicateAndClose(Int32) |
Duplica a referência do soquete para o processo alvo e fecha o soquete para este processo. |
| EndAccept(Byte[], IAsyncResult) |
Aceita assíncronamente uma tentativa de ligação recebida e cria um novo Socket objeto para gerir a comunicação remota do host. Este método devolve um buffer que contém os dados iniciais transferidos. |
| EndAccept(Byte[], Int32, IAsyncResult) |
Aceita assíncronamente uma tentativa de ligação recebida e cria um novo Socket objeto para gerir a comunicação remota do host. Este método devolve um buffer que contém os dados iniciais e o número de bytes transferidos. |
| EndAccept(IAsyncResult) |
Aceita assíncronamente uma tentativa de ligação recebida e cria uma nova Socket para gerir a comunicação remota do host. |
| EndConnect(IAsyncResult) |
Termina um pedido de ligação assíncrona pendente. |
| EndDisconnect(IAsyncResult) |
Termina um pedido de desconexão assíncrono pendente. |
| EndReceive(IAsyncResult, SocketError) |
Termina uma leitura assíncrona pendente. |
| EndReceive(IAsyncResult) |
Termina uma leitura assíncrona pendente. |
| EndReceiveFrom(IAsyncResult, EndPoint) |
Termina uma leitura assíncrona pendente de um endpoint específico. |
| EndReceiveMessageFrom(IAsyncResult, SocketFlags, EndPoint, IPPacketInformation) |
Termina uma leitura assíncrona pendente de um endpoint específico. Este método também revela mais informação sobre o pacote do que EndReceiveFrom(IAsyncResult, EndPoint). |
| EndSend(IAsyncResult, SocketError) |
Termina um envio assíncrono pendente. |
| EndSend(IAsyncResult) |
Termina um envio assíncrono pendente. |
| EndSendFile(IAsyncResult) |
Termina um envio assíncrono pendente de um ficheiro. |
| EndSendTo(IAsyncResult) |
Termina um envio assíncrono pendente para um local específico. |
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| Finalize() |
Liberta recursos usados pela Socket turma. |
| GetHashCode() |
Devolve um valor de hash para uma Socket instância. |
| GetHashCode() |
Serve como função de hash predefinida. (Herdado de Object) |
| GetSocketOption(SocketOptionLevel, SocketOptionName, Byte[]) |
Devolve a opção especificada Socket , representada como um array de bytes. |
| GetSocketOption(SocketOptionLevel, SocketOptionName, Int32) |
Devolve o valor da opção especificada Socket num array. |
| GetSocketOption(SocketOptionLevel, SocketOptionName) |
Devolve o valor de uma opção especificada Socket , representada como um objeto. |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| IOControl(Int32, Byte[], Byte[]) |
Define modos de funcionamento de baixo nível para o Socket uso de códigos numéricos de controlo. |
| IOControl(IOControlCode, Byte[], Byte[]) |
Define modos de operação de baixo nível para o Socket uso da IOControlCode enumeração para especificar códigos de controlo. |
| Listen(Int32) |
Coloca o Socket A num estado de escuta. |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| Poll(Int32, SelectMode) |
Determina o estado do Socket. |
| Receive(Byte[], Int32, Int32, SocketFlags, SocketError) |
Recebe dados de um limite Socket para um buffer de receção, usando o especificado SocketFlags. |
| Receive(Byte[], Int32, Int32, SocketFlags) |
Recebe o número especificado de bytes de um limite Socket para a posição de deslocamento especificada do buffer de receção, usando o especificado SocketFlags. |
| Receive(Byte[], Int32, SocketFlags) |
Recebe o número especificado de bytes de dados de um limite Socket para um buffer de receção, usando o especificado SocketFlags. |
| Receive(Byte[], SocketFlags) |
Recebe dados de um limite Socket para um buffer de receção, usando o especificado SocketFlags. |
| Receive(Byte[]) |
Recebe dados de um bound Socket para um buffer de receção. |
| Receive(IList<ArraySegment<Byte>>, SocketFlags, SocketError) |
Recebe dados de um limite Socket para a lista de buffers de receção, usando o especificado SocketFlags. |
| Receive(IList<ArraySegment<Byte>>, SocketFlags) |
Recebe dados de um limite Socket para a lista de buffers de receção, usando o especificado SocketFlags. |
| Receive(IList<ArraySegment<Byte>>) |
Recebe dados de um bound Socket para a lista de buffers de receção. |
| Receive(Span<Byte>, SocketFlags, SocketError) |
Recebe dados de um limite Socket para um buffer de receção, usando o especificado SocketFlags. |
| Receive(Span<Byte>, SocketFlags) |
Recebe dados de um limite Socket para um buffer de receção, usando o especificado SocketFlags. |
| Receive(Span<Byte>) |
Recebe dados de um bound Socket para um buffer de receção. |
| ReceiveAsync(SocketAsyncEventArgs) |
Inicia um pedido assíncrono para receber dados de um objeto ligado Socket . |
| ReceiveFrom(Byte[], EndPoint) |
Recebe um datagrama no buffer de dados e armazena o endpoint. |
| ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint) |
Recebe o número especificado de bytes de dados na localização especificada do buffer de dados, usando o especificado SocketFlags, e armazena o endpoint. |
| ReceiveFrom(Byte[], Int32, SocketFlags, EndPoint) |
Recebe o número especificado de bytes no data buffer, usando o especificado SocketFlags, e armazena o endpoint. |
| ReceiveFrom(Byte[], SocketFlags, EndPoint) |
Recebe um datagrama no buffer de dados, usando o especificado SocketFlags, e armazena o endpoint. |
| ReceiveFromAsync(SocketAsyncEventArgs) |
Começa a receber dados de forma assíncrona de um dispositivo de rede especificado. |
| ReceiveMessageFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, IPPacketInformation) |
Recebe o número especificado de bytes de dados na localização especificada do buffer de dados, usando o , e SocketFlagsarmazena a informação do endpoint e do pacote. |
| ReceiveMessageFromAsync(SocketAsyncEventArgs) |
Começa a receber assíncronamente o número especificado de bytes de dados para a localização especificada no buffer de dados, usando o especificado SocketFlags, e armazena a informação do endpoint e do pacote. |
| Select(IList, IList, IList, Int32) |
Determina o estado de um ou mais soquetes. |
| Send(Byte[], Int32, Int32, SocketFlags, SocketError) |
Envia o número especificado de bytes de dados para um conjunto conectado Socket, começando no deslocamento especificado, e usando o especificado SocketFlags. |
| Send(Byte[], Int32, Int32, SocketFlags) |
Envia o número especificado de bytes de dados para um conjunto conectado Socket, começando no deslocamento especificado, e usando o especificado SocketFlags. |
| Send(Byte[], Int32, SocketFlags) |
Envia o número especificado de bytes de dados para um conjunto conectado Socket, usando o especificado SocketFlags. |
| Send(Byte[], SocketFlags) |
Envia dados para um ligado Socket usando o especificado SocketFlags. |
| Send(Byte[]) |
Envia dados para um .Socket |
| Send(IList<ArraySegment<Byte>>, SocketFlags, SocketError) |
Envia o conjunto de buffers na lista para um conectado Socket, usando o especificado SocketFlags. |
| Send(IList<ArraySegment<Byte>>, SocketFlags) |
Envia o conjunto de buffers na lista para um conectado Socket, usando o especificado SocketFlags. |
| Send(IList<ArraySegment<Byte>>) |
Envia o conjunto de buffers na lista para um .Socket |
| Send(ReadOnlySpan<Byte>, SocketFlags, SocketError) |
Envia dados para um ligado Socket usando o especificado SocketFlags. |
| Send(ReadOnlySpan<Byte>, SocketFlags) |
Envia dados para um ligado Socket usando o especificado SocketFlags. |
| Send(ReadOnlySpan<Byte>) |
Envia dados para um .Socket |
| SendAsync(SocketAsyncEventArgs) |
Envia dados de forma assíncrona para um objeto ligado Socket . |
| SendFile(String, Byte[], Byte[], TransmitFileOptions) |
Envia o ficheiro |
| SendFile(String) |
Envia o ficheiro |
| SendPacketsAsync(SocketAsyncEventArgs) |
Envia uma coleção de ficheiros ou buffers de dados em memória de forma assíncrona para um objeto ligado Socket . |
| SendTo(Byte[], EndPoint) |
Envia dados para o endpoint especificado. |
| SendTo(Byte[], Int32, Int32, SocketFlags, EndPoint) |
Envia o número especificado de bytes de dados para o endpoint especificado, começando na localização especificada no buffer, e usando o .SocketFlags |
| SendTo(Byte[], Int32, SocketFlags, EndPoint) |
Envia o número especificado de bytes de dados para o endpoint especificado usando o .SocketFlags |
| SendTo(Byte[], SocketFlags, EndPoint) |
Envia dados para um endpoint específico usando o especificado SocketFlags. |
| SendToAsync(SocketAsyncEventArgs) |
Envia dados de forma assíncrona para um host remoto específico. |
| SetIPProtectionLevel(IPProtectionLevel) |
Define o nível de proteção IP numa soquete. |
| SetSocketOption(SocketOptionLevel, SocketOptionName, Boolean) |
Define a opção especificada Socket para o valor especificado Boolean . |
| SetSocketOption(SocketOptionLevel, SocketOptionName, Byte[]) |
Define a opção especificada Socket para o valor especificado, representado como um array de bytes. |
| SetSocketOption(SocketOptionLevel, SocketOptionName, Int32) |
Define a opção especificada Socket para o valor inteiro especificado. |
| SetSocketOption(SocketOptionLevel, SocketOptionName, Object) |
Define a opção especificada Socket para o valor especificado, representado como um objeto. |
| Shutdown(SocketShutdown) |
Desabilita envio e recebe em um Socket. |
| ToString() |
Devolve uma cadeia que representa o objeto atual. (Herdado de Object) |
Implementações de Interface Explícita
| Name | Description |
|---|---|
| IDisposable.Dispose() |
Esta API suporta a infraestrutura de produtos e não é pressuposta para ser utilizada diretamente a partir do seu código. Liberta todos os recursos utilizados pelo Socket. |
Métodos da Extensão
| Name | Description |
|---|---|
| AcceptAsync(Socket, Socket) |
Executa uma operação assíncrona para aceitar uma tentativa de ligação recebida no socket. |
| AcceptAsync(Socket) |
Executa uma operação assíncrona para aceitar uma tentativa de ligação recebida no socket. |
| ConnectAsync(Socket, EndPoint) |
Estabelece uma ligação a um host remoto. |
| ConnectAsync(Socket, IPAddress, Int32) |
Estabelece uma ligação a um host remoto. O host é especificado por um endereço IP e um número de porta. |
| ConnectAsync(Socket, IPAddress[], Int32) |
Estabelece uma ligação a um host remoto. O host é especificado por um array de endereços IP e um número de porta. |
| ConnectAsync(Socket, String, Int32) |
Estabelece uma ligação a um host remoto. O host é especificado por um nome de host e um número de porta. |
| ReceiveAsync(Socket, ArraySegment<Byte>, SocketFlags) |
Recebe dados de uma tomada ligada. |
| ReceiveAsync(Socket, IList<ArraySegment<Byte>>, SocketFlags) |
Recebe dados de uma tomada ligada. |
| ReceiveAsync(Socket, Memory<Byte>, SocketFlags, CancellationToken) |
Recebe dados de uma tomada ligada. |
| ReceiveFromAsync(Socket, ArraySegment<Byte>, SocketFlags, EndPoint) |
Recebe dados de um dispositivo de rede especificado. |
| ReceiveMessageFromAsync(Socket, ArraySegment<Byte>, SocketFlags, EndPoint) |
Recebe o número especificado de bytes de dados na localização especificada do buffer de dados, usando o , e SocketFlagsarmazena a informação do endpoint e do pacote. |
| SendAsync(Socket, ArraySegment<Byte>, SocketFlags) |
Envia dados para um soquete conectado. |
| SendAsync(Socket, IList<ArraySegment<Byte>>, SocketFlags) |
Envia dados para um soquete conectado. |
| SendAsync(Socket, ReadOnlyMemory<Byte>, SocketFlags, CancellationToken) |
Envia dados para um soquete conectado. |
| SendToAsync(Socket, ArraySegment<Byte>, SocketFlags, EndPoint) |
Envia dados de forma assíncrona para um host remoto específico. |
Aplica-se a
Segurança de Thread
É seguro realizar simultaneamente uma operação de envio e receção numa Socket instância, mas não é recomendado emitir múltiplas chamadas de envio ou múltiplas receção em simultâneo. Dependendo da implementação subjacente da plataforma, isto pode levar a intercalações não intencionais de dados para envios ou receções grandes ou multi-buffer.
Ver também
- System.Net
- System.Net.Cache
- System.Net.Security
- SocketAsyncEventArgs
- programação de rede no .NET Framework
- Boas Práticas para Aulas System.Net
- Gerenciamento de cache para aplicativos de rede
- Protocolo de Internet Versão 6
- Exemplos de Programação em Rede
- Rastreamento de rede no .NET Framework
- Segurança na Programação de Redes
- Melhorias no desempenho dos soquetes na versão 3.5