Soquetes no .NET
O namespace System.Net.Sockets contém uma implementação de rede de soquetes entre plataformas gerenciada. Todas as outras classes de acesso à rede no namespace System.Net são criadas com base nessa implementação de soquetes.
A classe Socket é uma versão de código gerenciado dos serviços de soquete fornecidos com base na interoperabilidade nativa com Linux, macOS ou Windows. Na maioria dos casos, os métodos da classe Socket
simplesmente realizam marshaling dos dados em seus equivalentes nativos e manipulam as verificações de segurança necessárias.
A classe Socket
dá suporte a dois modos básicos: síncrono e assíncrono. No modo síncrono, as chamadas a funções que executam operações de rede (como SendAsync e ReceiveAsync) aguardam até que a operação seja concluída antes de retornar o controle ao programa de chamada. No modo assíncrono, essas chamadas são retornadas imediatamente.