Compartilhar via


System.Net.Sockets.Socket classe

Este artigo fornece observações complementares à documentação de referência para essa API.

A Socket classe fornece um rico conjunto 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 .NET para métodos assíncronos. Por exemplo, o método síncrono corresponde às variantes assíncronas ReceiveReceiveAsync .

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

  • Se você estiver usando um protocolo orientado a conexão, como TCP, seu 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 isso retornado Socket para chamar o Send método ou Receive . Chame o método antes de chamar o método se desejar especificar o endereço IP local e o BindListen número da porta. Use um número de porta zero se quiser que o provedor de serviços subjacente atribua uma porta livre para você. Se você quiser se conectar a um host de escuta, chame o Connect método. Para comunicar dados, chame o Send método ou Receive .
  • Se você estiver usando um protocolo sem conexão, como UDP, não precisará escutar conexões. Chame o ReceiveFrom método para aceitar quaisquer datagramas de entrada. Use o SendTo método para enviar datagramas para um host remoto.

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

  • Se você estiver usando um protocolo orientado à conexão, como TCP, use ConnectAsync para se conectar a 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 AcceptAsynco .
  • 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 serão necessariamente concluídas na ordem em que forem iniciadas.

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

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