Compartilhar via


Classe System.Net.Sockets.Socket

Este artigo fornece comentários complementares à documentação de referência para esta API.

A Socket classe fornece um conjunto avançado de métodos e propriedades para comunicações de rede. A Socket classe permite que você execute a transferência de dados síncrona e assíncrona usando qualquer um dos protocolos de comunicação listados na ProtocolType enumeração.

A Socket classe segue o padrão de nomenclatura do .NET para métodos assíncronos. Por exemplo, o método síncrono Receive corresponde às variantes assíncronas ReceiveAsync .

Use os seguintes métodos para o modo de operação síncrono:

  • Se você estiver usando um protocolo orientado à conexão, como o TCP, o servidor poderá escutar conexões usando o Listen método. O Accept método processa todas as solicitações de conexão de entrada e retorna um Socket que você pode usar para comunicar dados com o host remoto. Use este Socket retornado para chamar o método Send ou Receive. Chame o Bind método antes de chamar o Listen método se você quiser especificar o endereço IP local e o número da porta. Use um número de porta zero se desejar que o provedor de serviços subjacente atribua uma porta gratuita para você. Se você quiser se conectar a um host de escuta, chame o Connect método. Para comunicar dados, chame o método Send ou Receive.
  • Se você estiver usando um protocolo sem conexão, como o UDP, não precisará escutar conexões. Chame o ReceiveFrom método para aceitar qualquer datagrama de entrada. Use o SendTo método para enviar datagramas para um host remoto.

Para processar as comunicações de forma assíncrona, use os seguintes métodos:

  • Se você estiver usando um protocolo orientado à conexão, como o TCP, use ConnectAsync para se conectar com um host de escuta. Use SendAsync ou ReceiveAsync comunique dados de forma assíncrona. As solicitações de conexão de entrada podem ser processadas usando AcceptAsync.
  • Se você estiver usando um protocolo sem conexão, como UDP, poderá usar SendToAsync para enviar datagramas e ReceiveFromAsyncreceber datagramas.

Se você executar várias operações assíncronas em um soquete, elas não necessariamente serão concluídas na ordem em que são iniciadas.

Quando terminar de enviar e receber dados, use o Shutdown método para desabilitar o Socket. Depois de chamar Shutdown, chame o Close método para liberar todos os recursos associados ao Socket.

A Socket classe permite que você configure o Socket usando o método SetSocketOption. Recupere essas configurações usando o GetSocketOption método.