Socket Classe

Definição

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 a seguir mostra como a Socket classe pode ser usada para enviar dados para um servidor HTTP, imprimindo a resposta ASCII para a saída padrão. Este exemplo bloqueia o thread de chamada 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 próximo exemplo demonstra o mesmo cenário HTTP GET, usando APIs assíncronas baseadas em tarefa, ao mesmo tempo em que encaminha um CancellationToken para os métodos assíncronos, tornando toda a operação cancelável.

Dica

SocketOs métodos assíncronos que não tomam um CancellationToken normalmente retornam um Task, que é alocado no heap. As sobrecargas canceláveis são sempre ValueTask-retornando; usá-las ajuda a reduzir as alocações no 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);
    }
}

Comentários

Para obter mais informações sobre essa API, consulte comentários da API Complementar para Socket.

Construtores

Nome Description
Socket(AddressFamily, SocketType, ProtocolType)

Inicializa uma nova instância da Socket classe usando a família de endereços, o tipo de soquete e o protocolo especificados.

Socket(SocketInformation)

Inicializa uma nova instância da Socket classe usando o valor especificado retornado de DuplicateAndClose(Int32).

Socket(SocketType, ProtocolType)

Inicializa uma nova instância da Socket classe usando o tipo de soquete e o protocolo especificados. Se o sistema operacional der suporte ao IPv6, esse construtor criará um soquete de modo duplo; caso contrário, ele cria um soquete IPv4.

Propriedades

Nome Description
AddressFamily

Obtém a família de endereços da Socket.

Available

Obtém a quantidade de dados que foram recebidos da rede e estão disponíveis para serem lidos.

Blocking

Obtém ou define um valor que indica se o Socket está no modo de bloqueio.

Connected

Obtém um valor que indica se um Socket está conectado a um host remoto a partir da última Send ou Receive operação.

DontFragment

Obtém ou define um valor que especifica se os Socket datagramas de IP (Protocolo de Internet) são fragmentados.

DualMode

Obtém ou define um valor que especifica se o Socket soquete de modo duplo é usado para IPv4 e IPv6.

EnableBroadcast

Obtém ou define um Boolean valor que especifica se os Socket pacotes de transmissão podem ser enviados.

ExclusiveAddressUse

Obtém ou define um valor que indica se o Socket processo permite que apenas um processo seja associado a uma porta.

Handle

Obtém o identificador do sistema operacional para o Socket.

IsBound

Obtém um valor que indica se o Socket está associado a uma porta local específica.

LingerState

Obtém ou define um valor que especifica se o atraso será o Socket fechamento de um soquete na tentativa de enviar todos os dados pendentes.

LocalEndPoint

Obtém o ponto de extremidade local.

MulticastLoopback

Obtém ou define um valor que especifica se os pacotes multicast de saída são entregues ao aplicativo de envio.

NoDelay

Obtém ou define um Boolean valor que especifica se o fluxo Socket está usando o algoritmo Nagle.

OSSupportsIPv4

Indica se o sistema operacional subjacente e os adaptadores de rede dão suporte ao Protocolo de Internet versão 4 (IPv4).

OSSupportsIPv6

Indica se o sistema operacional subjacente e os adaptadores de rede dão suporte ao 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 recebimento do Socket.

ReceiveTimeout

Obtém ou define um valor que especifica a quantidade de tempo após o qual uma chamada síncrona Receive terá um tempo limite.

RemoteEndPoint

Obtém o ponto de extremidade remoto.

SendBufferSize

Obtém ou define um valor que especifica o tamanho do buffer de envio do Socket.

SendTimeout

Obtém ou define um valor que especifica a quantidade de tempo após o qual uma chamada síncrona Send terá um tempo limite.

SocketType

Obtém o tipo do Socket.

SupportsIPv4
Obsoleto.
Obsoleto.

Obtém um valor que indica se o suporte ao IPv4 está disponível e habilitado no host atual.

SupportsIPv6
Obsoleto.
Obsoleto.

Obtém um valor que indica se o Framework dá suporte ao IPv6 para determinados membros obsoletos Dns .

Ttl

Obtém ou define um valor que especifica o valor de TTL (Vida Útil) de pacotes de IP (Protocolo de Internet) enviados pelo Socket.

UseOnlyOverlappedIO

Obtém ou define um valor que especifica se o soquete deve usar apenas o modo de E/S sobreposto. No .NET 5+ (incluindo versões do .NET Core), o valor é sempre false.

Métodos

Nome Description
Accept()

Cria uma nova Socket para uma conexão recém-criada.

AcceptAsync(SocketAsyncEventArgs)

Inicia uma operação assíncrona para aceitar uma tentativa de conexão de entrada.

BeginAccept(AsyncCallback, Object)

Inicia uma operação assíncrona para aceitar uma tentativa de conexão de entrada.

BeginAccept(Int32, AsyncCallback, Object)

Inicia uma operação assíncrona para aceitar uma tentativa de conexão de entrada e recebe o primeiro bloco de dados enviados pelo aplicativo cliente.

BeginAccept(Socket, Int32, AsyncCallback, Object)

Inicia uma operação assíncrona para aceitar uma tentativa de conexão de entrada de um soquete especificado e recebe o primeiro bloco de dados enviados pelo aplicativo cliente.

BeginConnect(EndPoint, AsyncCallback, Object)

Inicia uma solicitação assíncrona para uma conexão de host remoto.

BeginConnect(IPAddress, Int32, AsyncCallback, Object)

Inicia uma solicitação assíncrona para uma conexão de host remoto. O host é especificado por um número de porta e um IPAddress número de porta.

BeginConnect(IPAddress[], Int32, AsyncCallback, Object)

Inicia uma solicitação assíncrona para uma conexão de host remoto. O host é especificado por uma IPAddress matriz e um número de porta.

BeginConnect(String, Int32, AsyncCallback, Object)

Inicia uma solicitação assíncrona para uma conexão de host remoto. O host é especificado por um nome de host e um número de porta.

BeginDisconnect(Boolean, AsyncCallback, Object)

Inicia uma solicitação assíncrona para se desconectar de um ponto de extremidade remoto.

BeginReceive(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)

Começa a receber dados de forma assíncrona de um conectado Socket.

BeginReceive(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object)

Começa a receber dados de forma assíncrona de um conectado Socket.

BeginReceive(IList<ArraySegment<Byte>>, SocketFlags, AsyncCallback, Object)

Começa a receber dados de forma assíncrona de um conectado Socket.

BeginReceive(IList<ArraySegment<Byte>>, SocketFlags, SocketError, AsyncCallback, Object)

Começa a receber dados de forma assíncrona de um conectado 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 de forma assíncrona o número especificado de bytes de dados no local especificado do buffer de dados, usando o especificado SocketFlags, e armazena as informações de ponto de extremidade e pacote.

BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)

Envia dados de forma assíncrona para um conectado Socket.

BeginSend(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object)

Envia dados de forma assíncrona para um conectado Socket.

BeginSend(IList<ArraySegment<Byte>>, SocketFlags, AsyncCallback, Object)

Envia dados de forma assíncrona para um conectado Socket.

BeginSend(IList<ArraySegment<Byte>>, SocketFlags, SocketError, AsyncCallback, Object)

Envia dados de forma assíncrona para um conectado Socket.

BeginSendFile(String, AsyncCallback, Object)

Envia o arquivo fileName para um objeto conectado Socket usando o UseDefaultWorkerThread sinalizador.

BeginSendFile(String, Byte[], Byte[], TransmitFileOptions, AsyncCallback, Object)

Envia um arquivo e buffers de dados de forma assíncrona para um objeto conectado Socket .

BeginSendTo(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)

Envia dados de forma assíncrona para um host remoto específico.

Bind(EndPoint)

Associa um a um Socket ponto de extremidade local.

CancelConnectAsync(SocketAsyncEventArgs)

Cancela uma solicitação assíncrona para uma conexão de host remoto.

Close()

Fecha a Socket conexão e libera todos os recursos associados.

Close(Int32)

Fecha a Socket conexão e libera todos os recursos associados com um tempo limite especificado para permitir que os dados enfileirados sejam enviados.

Connect(EndPoint)

Estabelece uma conexão com um host remoto.

Connect(IPAddress, Int32)

Estabelece uma conexão com um host remoto. O host é especificado por um endereço IP e um número de porta.

Connect(IPAddress[], Int32)

Estabelece uma conexão com um host remoto. O host é especificado por uma matriz de endereços IP e um número de porta.

Connect(String, Int32)

Estabelece uma conexão com um host remoto. O host é especificado por um nome de host e um número de porta.

ConnectAsync(SocketAsyncEventArgs)

Inicia uma solicitação assíncrona para uma conexão com um host remoto.

ConnectAsync(SocketType, ProtocolType, SocketAsyncEventArgs)

Inicia uma solicitação assíncrona para uma conexão com um host remoto.

Disconnect(Boolean)

Fecha a conexão do soquete e permite a reutilização do soquete.

DisconnectAsync(SocketAsyncEventArgs)

Inicia uma solicitação assíncrona para se desconectar de um ponto de extremidade remoto.

Dispose()

Libera todos os recursos usados pela instância atual da Socket classe.

Dispose(Boolean)

Libera os recursos não gerenciados usados pelo Sockete, opcionalmente, descarta os recursos gerenciados.

DuplicateAndClose(Int32)

Duplica a referência do soquete para o processo de destino e fecha o soquete para esse processo.

EndAccept(Byte[], IAsyncResult)

Aceita de forma assíncrona uma tentativa de conexão de entrada e cria um novo Socket objeto para lidar com a comunicação remota do host. Esse método retorna um buffer que contém os dados iniciais transferidos.

EndAccept(Byte[], Int32, IAsyncResult)

Aceita de forma assíncrona uma tentativa de conexão de entrada e cria um novo Socket objeto para lidar com a comunicação remota do host. Esse método retorna um buffer que contém os dados iniciais e o número de bytes transferidos.

EndAccept(IAsyncResult)

Aceita de forma assíncrona uma tentativa de conexão de entrada e cria uma nova Socket para lidar com a comunicação remota do host.

EndConnect(IAsyncResult)

Encerra uma solicitação de conexão assíncrona pendente.

EndDisconnect(IAsyncResult)

Encerra uma solicitação de desconexão assíncrona pendente.

EndReceive(IAsyncResult, SocketError)

Termina uma leitura assíncrona pendente.

EndReceive(IAsyncResult)

Termina uma leitura assíncrona pendente.

EndReceiveFrom(IAsyncResult, EndPoint)

Encerra uma leitura assíncrona pendente de um ponto de extremidade específico.

EndReceiveMessageFrom(IAsyncResult, SocketFlags, EndPoint, IPPacketInformation)

Encerra uma leitura assíncrona pendente de um ponto de extremidade específico. Esse método também revela mais informações sobre o pacote do que EndReceiveFrom(IAsyncResult, EndPoint).

EndSend(IAsyncResult, SocketError)

Encerra um envio assíncrono pendente.

EndSend(IAsyncResult)

Encerra um envio assíncrono pendente.

EndSendFile(IAsyncResult)

Encerra um envio assíncrono pendente de um arquivo.

EndSendTo(IAsyncResult)

Encerra 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()

Libera recursos usados pela Socket classe.

GetHashCode()

Retorna um valor de hash para uma Socket instância.

GetHashCode()

Serve como a função hash predefinida.

(Herdado de Object)
GetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

Retorna a configuração de opção especificada Socket , representada como uma matriz de bytes.

GetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

Retorna o valor da opção especificada Socket em uma matriz.

GetSocketOption(SocketOptionLevel, SocketOptionName)

Retorna 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 operacionais de baixo nível para os Socket códigos de controle numéricos usados.

IOControl(IOControlCode, Byte[], Byte[])

Define modos operacionais de baixo nível para o Socket uso da IOControlCode enumeração para especificar códigos de controle.

Listen(Int32)

Coloca um Socket em um estado de escuta.

MemberwiseClone()

Cria uma cópia superficial do Objectatual.

(Herdado de Object)
Poll(Int32, SelectMode)

Determina o status do Socket.

Receive(Byte[], Int32, Int32, SocketFlags, SocketError)

Recebe dados de um limite Socket em um buffer de recebimento, 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 recebimento, usando o especificado SocketFlags.

Receive(Byte[], Int32, SocketFlags)

Recebe o número especificado de bytes de dados de um limite Socket em um buffer de recebimento, usando o especificado SocketFlags.

Receive(Byte[], SocketFlags)

Recebe dados de um limite Socket em um buffer de recebimento, usando o especificado SocketFlags.

Receive(Byte[])

Recebe dados de um limite Socket em um buffer de recebimento.

Receive(IList<ArraySegment<Byte>>, SocketFlags, SocketError)

Recebe dados de um limite Socket na lista de buffers de recebimento, usando o especificado SocketFlags.

Receive(IList<ArraySegment<Byte>>, SocketFlags)

Recebe dados de um limite Socket na lista de buffers de recebimento, usando o especificado SocketFlags.

Receive(IList<ArraySegment<Byte>>)

Recebe dados de um limite Socket na lista de buffers de recebimento.

Receive(Span<Byte>, SocketFlags, SocketError)

Recebe dados de um limite Socket em um buffer de recebimento, usando o especificado SocketFlags.

Receive(Span<Byte>, SocketFlags)

Recebe dados de um limite Socket em um buffer de recebimento, usando o especificado SocketFlags.

Receive(Span<Byte>)

Recebe dados de um limite Socket em um buffer de recebimento.

ReceiveAsync(SocketAsyncEventArgs)

Inicia uma solicitação assíncrona para receber dados de um objeto conectado Socket .

ReceiveFrom(Byte[], EndPoint)

Recebe um datagram no buffer de dados e armazena o ponto de extremidade.

ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)

Recebe o número especificado de bytes de dados no local especificado do buffer de dados, usando o ponto de extremidade especificado SocketFlags, e armazena o ponto de extremidade.

ReceiveFrom(Byte[], Int32, SocketFlags, EndPoint)

Recebe o número especificado de bytes no buffer de dados, usando o ponto de extremidade especificado SocketFlagse armazena o ponto de extremidade.

ReceiveFrom(Byte[], SocketFlags, EndPoint)

Recebe um datagram no buffer de dados, usando o especificado SocketFlagse armazena o ponto de extremidade.

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 no local especificado do buffer de dados, usando o especificado SocketFlags, e armazena as informações de ponto de extremidade e pacote.

ReceiveMessageFromAsync(SocketAsyncEventArgs)

Começa a receber de forma assíncrona o número especificado de bytes de dados no local especificado no buffer de dados, usando o especificado SocketFlagse armazena as informações de ponto de extremidade e pacote.

Select(IList, IList, IList, Int32)

Determina o status de um ou mais soquetes.

Send(Byte[], Int32, Int32, SocketFlags, SocketError)

Envia o número especificado de bytes de dados para um 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 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 conectado Socketusando o especificado SocketFlags.

Send(Byte[], SocketFlags)

Envia dados para um conectado Socket usando o especificado SocketFlags.

Send(Byte[])

Envia dados para um conectado Socket.

Send(IList<ArraySegment<Byte>>, SocketFlags, SocketError)

Envia o conjunto de buffers na lista para um conectado Socketusando o .SocketFlags

Send(IList<ArraySegment<Byte>>, SocketFlags)

Envia o conjunto de buffers na lista para um conectado Socketusando o .SocketFlags

Send(IList<ArraySegment<Byte>>)

Envia o conjunto de buffers na lista para um conectado Socket.

Send(ReadOnlySpan<Byte>, SocketFlags, SocketError)

Envia dados para um conectado Socket usando o especificado SocketFlags.

Send(ReadOnlySpan<Byte>, SocketFlags)

Envia dados para um conectado Socket usando o especificado SocketFlags.

Send(ReadOnlySpan<Byte>)

Envia dados para um conectado Socket.

SendAsync(SocketAsyncEventArgs)

Envia dados de forma assíncrona para um objeto conectado Socket .

SendFile(String, Byte[], Byte[], TransmitFileOptions)

Envia o arquivo fileName e os buffers de dados para um objeto conectado Socket usando o valor especificado TransmitFileOptions .

SendFile(String)

Envia o arquivo fileName para um objeto conectado Socket com o UseDefaultWorkerThread sinalizador de transmissão.

SendPacketsAsync(SocketAsyncEventArgs)

Envia uma coleção de arquivos ou buffers de dados de memória de forma assíncrona para um objeto conectado Socket .

SendTo(Byte[], EndPoint)

Envia dados para o ponto de extremidade especificado.

SendTo(Byte[], Int32, Int32, SocketFlags, EndPoint)

Envia o número especificado de bytes de dados para o ponto de extremidade especificado, começando no local especificado no buffer e usando o especificado SocketFlags.

SendTo(Byte[], Int32, SocketFlags, EndPoint)

Envia o número especificado de bytes de dados para o ponto de extremidade especificado usando o especificado SocketFlags.

SendTo(Byte[], SocketFlags, EndPoint)

Envia dados para um ponto de extremidade 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 em um soquete.

SetSocketOption(SocketOptionLevel, SocketOptionName, Boolean)

Define a opção especificada Socket como o valor especificado Boolean .

SetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

Define a opção especificada Socket como o valor especificado, representado como uma matriz de bytes.

SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

Define a opção especificada Socket como o valor inteiro especificado.

SetSocketOption(SocketOptionLevel, SocketOptionName, Object)

Define a opção especificada Socket como o valor especificado, representado como um objeto.

Shutdown(SocketShutdown)

Desabilita envios e recebimentos em um Socket.

ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Implantações explícitas de interface

Nome Description
IDisposable.Dispose()

Esta API dá suporte à infraestrutura do produto e não deve ser usada diretamente do seu código.

Libera todos os recursos usados pelo Socket.

Métodos de Extensão

Nome Description
AcceptAsync(Socket, Socket)

Executa uma operação assíncrona para aceitar uma tentativa de conexão de entrada no soquete.

AcceptAsync(Socket)

Executa uma operação assíncrona para aceitar uma tentativa de conexão de entrada no soquete.

ConnectAsync(Socket, EndPoint)

Estabelece uma conexão com um host remoto.

ConnectAsync(Socket, IPAddress, Int32)

Estabelece uma conexão com um host remoto. O host é especificado por um endereço IP e um número de porta.

ConnectAsync(Socket, IPAddress[], Int32)

Estabelece uma conexão com um host remoto. O host é especificado por uma matriz de endereços IP e um número de porta.

ConnectAsync(Socket, String, Int32)

Estabelece uma conexão com 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 um soquete conectado.

ReceiveAsync(Socket, IList<ArraySegment<Byte>>, SocketFlags)

Recebe dados de um soquete conectado.

ReceiveAsync(Socket, Memory<Byte>, SocketFlags, CancellationToken)

Recebe dados de um soquete conectado.

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 no local especificado do buffer de dados, usando o especificado SocketFlags, e armazena as informações de ponto de extremidade e 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

Acesso thread-safe

É seguro executar uma operação de envio e recebimento simultaneamente em uma Socket instância, mas não é recomendável emitir várias chamadas de envio ou de recebimento simultaneamente. Dependendo da implementação da plataforma subjacente, isso pode levar à intercalação de dados não intencional para envios ou recebimentos grandes ou de vários buffers.

Confira também