Socket Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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. 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 da 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 transmissã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 |
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 |
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 |
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 |
SendFile(String, Byte[], Byte[], TransmitFileOptions) |
Envia o arquivo |
SendFile(String, ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, TransmitFileOptions) |
Envia o arquivo |
SendFileAsync(String, CancellationToken) |
Envia o arquivo |
SendFileAsync(String, ReadOnlyMemory<Byte>, ReadOnlyMemory<Byte>, TransmitFileOptions, CancellationToken) |
Envia o arquivo |
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 a intercalação de dados não intencional para envios ou recebimentos grandes ou de vários buffers.
Confira também
- System.Net
- System.Net.Cache
- System.Net.Security
- SocketAsyncEventArgs
- Programação de rede no .NET Framework
- Melhores práticas para classes System.Net
- Gerenciamento de cache para aplicativos de rede
- Protocolo IP versão 6
- Amostras de programação de rede
- Rastreamento de rede no .NET Framework
- Segurança na programação de rede
- Melhorias do desempenho de soquete na versão 3.5