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 exemplo a seguir 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 recebem um CancellationToken normalmente retornam um Task, que é alocado no heap. Sobrecargas canceláveis são sempre ValueTask-retornando; usá-las ajuda a reduzir as 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);
    }
}

Comentários

Para obter mais informações sobre essa API, consulte Comentários sobre a API Complementar para Soquete.

Construtores

Socket(AddressFamily, SocketType, ProtocolType)

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

Socket(SafeSocketHandle)

Inicializa uma nova instância da classe Socket para o identificador de soquete especificado.

Socket(SocketInformation)

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

Socket(SocketType, ProtocolType)

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

Propriedades

AddressFamily

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

Available

Obtém a quantidade de dados recebidos da rede e disponíveis para leitura.

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 desde a última operação Send ou Receive.

DontFragment

Obtém ou define um valor que especifica se o Socket permite que datagramas de protocolo IP sejam fragmentados.

DualMode

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

EnableBroadcast

Obtém ou define um Boolean valor que especifica se o Socket pode enviar pacotes de difusão.

ExclusiveAddressUse

Obtém ou define um valor Boolean que especifica se o Socket permite que um único processo se associe a uma porta.

Handle

Obtém o identificador de sistema operacional do 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 Socket atrasará ao fechar um soquete em uma 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 de multicast de saída são entregues para o aplicativo de envio.

NoDelay

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

OSSupportsIPv4

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

OSSupportsIPv6

Indica se o sistema operacional subjacente e os adaptadores de rede dão suporte ao IPv6 (protocolo IP versão 6).

OSSupportsUnixDomainSockets

Indica se o sistema operacional subjacente dá suporte aos soquetes de domínio unix.

ProtocolType

Obtém o tipo de protocolo do Socket.

ReceiveBufferSize

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

ReceiveTimeout

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

RemoteEndPoint

Obtém o ponto de extremidade remoto.

SafeHandle

Obtém um SafeSocketHandle que representa o identificador do soquete que o objeto Socket atual encapsula.

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 o tempo após o qual uma chamada Send síncrona atingirá o tempo limite.

SocketType

Obtém o tipo do Socket.

SupportsIPv4
Obsoleto.
Obsoleto.
Obsoleto.

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

SupportsIPv6
Obsoleto.
Obsoleto.
Obsoleto.

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

Ttl

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

UseOnlyOverlappedIO
Obsoleto.

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

Accept()

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

AcceptAsync()

Aceita uma conexão de entrada.

AcceptAsync(CancellationToken)

Aceita uma conexão de entrada.

AcceptAsync(Socket)

Aceita uma conexão de entrada.

AcceptAsync(Socket, CancellationToken)

Aceita uma conexão de entrada.

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 enviado 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 enviado 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 IPAddress e um número da porta.

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

Inicia uma solicitação assíncrona para uma conexão de host remoto. O host é especificado por uma matriz IPAddress e um número da 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 do host e um número da 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 de maneira assíncrona dados de um Socket conectado.

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

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

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

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

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

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

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

Começa a receber dados de um dispositivo de rede especificado de maneira assíncrona.

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

Inicia o recebimento de forma assíncrona do número especificado de bytes de dados no local especificado do buffer de dados, usando o SocketFlags especificado e armazena as informações de ponto de extremidade e de pacote.

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

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

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

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

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

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

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

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

BeginSendFile(String, AsyncCallback, Object)

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

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

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

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

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

Bind(EndPoint)

Associa um Socket a um ponto de extremidade local.

CancelConnectAsync(SocketAsyncEventArgs)

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

Close()

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

Close(Int32)

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

Connect(EndPoint)

Estabelece uma conexão com o host remoto.

Connect(IPAddress, Int32)

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

Connect(IPAddress[], Int32)

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

Connect(String, Int32)

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

ConnectAsync(EndPoint)

Estabelece uma conexão com o host remoto.

ConnectAsync(EndPoint, CancellationToken)

Estabelece uma conexão com o host remoto.

ConnectAsync(IPAddress, Int32)

Estabelece uma conexão com o host remoto.

ConnectAsync(IPAddress, Int32, CancellationToken)

Estabelece uma conexão com o host remoto.

ConnectAsync(IPAddress[], Int32)

Estabelece uma conexão com o host remoto.

ConnectAsync(IPAddress[], Int32, CancellationToken)

Estabelece uma conexão com o host remoto.

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.

ConnectAsync(String, Int32)

Estabelece uma conexão com o host remoto.

ConnectAsync(String, Int32, CancellationToken)

Estabelece uma conexão com o host remoto.

Disconnect(Boolean)

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

DisconnectAsync(Boolean, CancellationToken)

Desconecta um soquete conectado do host remoto.

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 classe Socket.

Dispose(Boolean)

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

DuplicateAndClose(Int32)

Duplica a referência de 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 objeto Socket para manipular as comunicações de host remoto. 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 objeto Socket para manipular as comunicações de host remoto. 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 um novo Socket para manipular as comunicações com o host remoto.

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)

Encerra uma leitura assíncrona pendente.

EndReceive(IAsyncResult, SocketError)

Encerra uma leitura assíncrona pendente.

EndReceiveFrom(IAsyncResult, EndPoint)

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

EndReceiveMessageFrom(IAsyncResult, SocketFlags, EndPoint, IPPacketInformation)

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

EndSend(IAsyncResult)

Encerra um envio assíncrono pendente.

EndSend(IAsyncResult, SocketError)

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 os recursos usados pela classe Socket.

GetHashCode()

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

GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetRawSocketOption(Int32, Int32, Span<Byte>)

Obtém um valor de opção de soquete usando identificadores de nome e nível específicos da plataforma.

GetSocketOption(SocketOptionLevel, SocketOptionName)

Retorna o valor de uma opção Socket especificada, representada como um objeto.

GetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

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

GetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

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

GetType()

Obtém o Type da instância atual.

(Herdado de Object)
IOControl(Int32, Byte[], Byte[])

Define os modos de operação de nível inferior do Socket usando códigos de controle numéricos.

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

Define modos de operação de nível inferior do Socket usando a enumeração IOControlCode para especificar códigos de controle.

Listen()

Coloca um Socket em um estado de escuta.

Listen(Int32)

Coloca um Socket em um estado de escuta.

MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
Poll(Int32, SelectMode)

Determina o status do Socket.

Poll(TimeSpan, SelectMode)

Determina o status do Socket.

Receive(Byte[])

Recebe dados de um Socket associado em um buffer de recepção.

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

Recebe o número de bytes especificado de um Socket associado na posição de deslocamento especificada do buffer de recepção usando o SocketFlags especificado.

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

Recebe dados de um Socket associado em um buffer de recepção, usando o SocketFlags especificado.

Receive(Byte[], Int32, SocketFlags)

Recebe o número de bytes especificado de dados de um Socket associado em um buffer de recepção, usando o SocketFlags especificado.

Receive(Byte[], SocketFlags)

Recebe dados de um Socket associado em um buffer de recepção, usando o SocketFlags especificado.

Receive(IList<ArraySegment<Byte>>)

Recebe dados de um Socket associado na lista de buffers de recepção.

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

Recebe dados de um Socket associado na lista de buffers de recepção, usando o SocketFlags especificado.

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

Recebe dados de um Socket associado na lista de buffers de recepção, usando o SocketFlags especificado.

Receive(Span<Byte>)

Recebe dados de um Socket associado em um buffer de recepção.

Receive(Span<Byte>, SocketFlags)

Recebe dados de um Socket associado em um buffer de recepção, usando o SocketFlags especificado.

Receive(Span<Byte>, SocketFlags, SocketError)

Recebe dados de um Socket associado em um buffer de recepção, usando o SocketFlags especificado.

ReceiveAsync(ArraySegment<Byte>)

Recebe os dados de um soquete conectado.

ReceiveAsync(ArraySegment<Byte>, SocketFlags)

Recebe os dados de um soquete conectado.

ReceiveAsync(IList<ArraySegment<Byte>>)

Recebe os dados de um soquete conectado.

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

Recebe os dados de um soquete conectado.

ReceiveAsync(Memory<Byte>, CancellationToken)

Recebe os dados de um soquete conectado.

ReceiveAsync(Memory<Byte>, SocketFlags, CancellationToken)

Recebe os dados de um soquete conectado.

ReceiveAsync(SocketAsyncEventArgs)

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

ReceiveFrom(Byte[], EndPoint)

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

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

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

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

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

ReceiveFrom(Byte[], SocketFlags, EndPoint)

Recebe um datagrama no buffer de dados, usando o SocketFlags especificado e armazena o ponto de extremidade.

ReceiveFrom(Span<Byte>, EndPoint)

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

ReceiveFrom(Span<Byte>, SocketFlags, EndPoint)

Recebe um datagrama no buffer de dados, usando o SocketFlags especificado e armazena o ponto de extremidade.

ReceiveFrom(Span<Byte>, SocketFlags, SocketAddress)

Recebe um datagrama no buffer de dados, usando o SocketFlags especificado e armazena o ponto de extremidade.

ReceiveFromAsync(ArraySegment<Byte>, EndPoint)

Recebe dados e retorna o ponto de extremidade do host de envio.

ReceiveFromAsync(ArraySegment<Byte>, SocketFlags, EndPoint)

Recebe dados e retorna o ponto de extremidade do host de envio.

ReceiveFromAsync(Memory<Byte>, EndPoint, CancellationToken)

Recebe dados e retorna o ponto de extremidade do host de envio.

ReceiveFromAsync(Memory<Byte>, SocketFlags, EndPoint, CancellationToken)

Recebe dados e retorna o ponto de extremidade do host de envio.

ReceiveFromAsync(Memory<Byte>, SocketFlags, SocketAddress, CancellationToken)

Recebe um datagrama no buffer de dados, usando o SocketFlags especificado e armazena o ponto de extremidade.

ReceiveFromAsync(SocketAsyncEventArgs)

Começa a receber dados de um dispositivo de rede especificado de maneira assíncrona.

ReceiveMessageFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, IPPacketInformation)

Recebe o número de bytes de dados no local especificado no buffer de dados usando o SocketFlags especificado e armazena as informações de ponto de extremidade e pacote.

ReceiveMessageFrom(Span<Byte>, SocketFlags, EndPoint, IPPacketInformation)

Recebe o número de bytes de dados no local especificado no buffer de dados usando o socketFlags especificado e armazena as informações de ponto de extremidade e pacote.

ReceiveMessageFromAsync(ArraySegment<Byte>, EndPoint)

Recebe dados e retorna informações adicionais sobre o remetente da mensagem.

ReceiveMessageFromAsync(ArraySegment<Byte>, SocketFlags, EndPoint)

Recebe dados e retorna informações adicionais sobre o remetente da mensagem.

ReceiveMessageFromAsync(Memory<Byte>, EndPoint, CancellationToken)

Recebe dados e retorna informações adicionais sobre o remetente da mensagem.

ReceiveMessageFromAsync(Memory<Byte>, SocketFlags, EndPoint, CancellationToken)

Recebe dados e retorna informações adicionais sobre o remetente da mensagem.

ReceiveMessageFromAsync(SocketAsyncEventArgs)

Inicia o recebimento de forma assíncrona do número especificado de bytes de dados no local especificado do buffer de dados, usando o SocketFlags especificado e armazena as informações de ponto de extremidade e de pacote.

Select(IList, IList, IList, Int32)

Determina o status de um ou mais soquetes.

Select(IList, IList, IList, TimeSpan)

Determina o status de um ou mais soquetes.

Send(Byte[])

Envia dados para um Socket conectado.

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

Envia o número especificado de bytes de dados para um Socket conectado, começando no deslocamento especificado e usando os SocketFlags especificados.

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

Envia o número especificado de bytes de dados para um Socket conectado, começando no deslocamento especificado e usando os SocketFlags especificados.

Send(Byte[], Int32, SocketFlags)

Envia o número especificado de bytes de dados para um Socket conectado, usando o SocketFlags especificado.

Send(Byte[], SocketFlags)

Envia dados para um Socket conectado usando o SocketFlags especificado.

Send(IList<ArraySegment<Byte>>)

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

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

Envia o conjunto de buffers na lista para um Socket conectado, usando o SocketFlags especificado.

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

Envia o conjunto de buffers na lista para um Socket conectado, usando o SocketFlags especificado.

Send(ReadOnlySpan<Byte>)

Envia dados para um Socket conectado.

Send(ReadOnlySpan<Byte>, SocketFlags)

Envia dados para um Socket conectado usando o SocketFlags especificado.

Send(ReadOnlySpan<Byte>, SocketFlags, SocketError)

Envia dados para um Socket conectado usando o SocketFlags especificado.

SendAsync(ArraySegment<Byte>)

Envia dados em um soquete conectado.

SendAsync(ArraySegment<Byte>, SocketFlags)

Envia dados em um soquete conectado.

SendAsync(IList<ArraySegment<Byte>>)

Envia dados em um soquete conectado.

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

Envia dados em um soquete conectado.

SendAsync(ReadOnlyMemory<Byte>, CancellationToken)

Envia dados em um soquete conectado.

SendAsync(ReadOnlyMemory<Byte>, SocketFlags, CancellationToken)

Envia dados em um soquete conectado.

SendAsync(SocketAsyncEventArgs)

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

SendFile(String)

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

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

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

SendFile(String, ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, TransmitFileOptions)

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

SendFileAsync(String, CancellationToken)

Envia o arquivo fileName para um objeto conectado Socket .

SendFileAsync(String, ReadOnlyMemory<Byte>, ReadOnlyMemory<Byte>, TransmitFileOptions, CancellationToken)

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

SendPacketsAsync(SocketAsyncEventArgs)

Envia uma coleção de arquivos ou buffers de dados na memória assincronamente para um objeto Socket conectado.

SendTo(Byte[], EndPoint)

Envia dados ao 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 SocketFlags especificado.

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

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

SendTo(Byte[], SocketFlags, EndPoint)

Envia dados para um ponto de extremidade específico usando o SocketFlags especificado.

SendTo(ReadOnlySpan<Byte>, EndPoint)

Envia dados ao ponto de extremidade especificado.

SendTo(ReadOnlySpan<Byte>, SocketFlags, EndPoint)

Envia dados para um ponto de extremidade específico usando o SocketFlags especificado.

SendTo(ReadOnlySpan<Byte>, SocketFlags, SocketAddress)

Envia dados para um ponto de extremidade específico usando o SocketFlags especificado.

SendToAsync(ArraySegment<Byte>, EndPoint)

Envia dados para o host remoto especificado.

SendToAsync(ArraySegment<Byte>, SocketFlags, EndPoint)

Envia dados para o host remoto especificado.

SendToAsync(ReadOnlyMemory<Byte>, EndPoint, CancellationToken)

Envia dados para o host remoto especificado.

SendToAsync(ReadOnlyMemory<Byte>, SocketFlags, EndPoint, CancellationToken)

Envia dados para o host remoto especificado.

SendToAsync(ReadOnlyMemory<Byte>, SocketFlags, SocketAddress, CancellationToken)

Envia dados para um ponto de extremidade específico usando o SocketFlags especificado.

SendToAsync(SocketAsyncEventArgs)

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

SetIPProtectionLevel(IPProtectionLevel)

Define o nível de proteção de IP em um soquete.

SetRawSocketOption(Int32, Int32, ReadOnlySpan<Byte>)

Define um valor da opção de soquete usando identificadores de nome e de nível específicos da plataforma.

SetSocketOption(SocketOptionLevel, SocketOptionName, Boolean)

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

SetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

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

SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

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

SetSocketOption(SocketOptionLevel, SocketOptionName, Object)

Define a opção Socket especificada com 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

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

AcceptAsync(Socket)

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

AcceptAsync(Socket, 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 o host remoto.

ConnectAsync(Socket, EndPoint, CancellationToken)

Estabelece uma conexão com o host remoto.

ConnectAsync(Socket, IPAddress, Int32)

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

ConnectAsync(Socket, IPAddress, Int32, CancellationToken)

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

ConnectAsync(Socket, IPAddress[], Int32)

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

ConnectAsync(Socket, IPAddress[], Int32, CancellationToken)

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

ConnectAsync(Socket, String, Int32)

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

ConnectAsync(Socket, String, Int32, CancellationToken)

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

ReceiveAsync(Socket, ArraySegment<Byte>, SocketFlags)

Recebe os dados de um soquete conectado.

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

Recebe os dados de um soquete conectado.

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

Recebe os 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 de bytes de dados no local especificado no buffer de dados usando o SocketFlags especificado 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 maneira 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