Classe System.Net.Sockets.Socket

Questo articolo fornisce osservazioni supplementari alla documentazione di riferimento per questa API.

La Socket classe fornisce un set completo di metodi e proprietà per le comunicazioni di rete. La Socket classe consente di eseguire sia il trasferimento sincrono che asincrono dei dati usando uno dei protocolli di comunicazione elencati nell'enumerazione ProtocolType .

La Socket classe segue il modello di denominazione .NET per i metodi asincroni. Ad esempio, il metodo sincrono Receive corrisponde alle varianti asincrone ReceiveAsync .

Usare i metodi seguenti per la modalità operativa sincrona:

  • Se si usa un protocollo orientato alla connessione, ad esempio TCP, il server può restare in ascolto delle connessioni usando il Listen metodo . Il Accept metodo elabora le richieste di connessione in ingresso e restituisce un oggetto Socket che è possibile usare per comunicare i dati con l'host remoto. Utilizzare questa proprietà restituita Socket per chiamare il Send metodo o Receive . Chiamare il Bind metodo prima di chiamare il Listen metodo se si desidera specificare l'indirizzo IP locale e il numero di porta. Usare un numero di porta pari a zero se si vuole che il provider di servizi sottostante assegni automaticamente una porta libera. Se si vuole connettersi a un host in ascolto, chiamare il Connect metodo . Per comunicare i dati, chiamare il Send metodo o Receive .
  • Se si usa un protocollo senza connessione, ad esempio UDP, non è necessario restare in ascolto delle connessioni. Chiamare il ReceiveFrom metodo per accettare eventuali datagrammi in ingresso. Usare il SendTo metodo per inviare datagrammi a un host remoto.

Per elaborare le comunicazioni in modo asincrono, usare i metodi seguenti:

  • Se si usa un protocollo orientato alla connessione, ad esempio TCP, usare ConnectAsync per connettersi con un host in ascolto. Usare SendAsync o ReceiveAsync per comunicare i dati in modo asincrono. Le richieste di connessione in ingresso possono essere elaborate tramite AcceptAsync.
  • Se si usa un protocollo senza connessione, ad esempio UDP, è possibile usare SendToAsync per inviare datagrammi e ReceiveFromAsyncper ricevere datagrammi.

Se si eseguono più operazioni asincrone su un socket, non vengono necessariamente completate nell'ordine in cui vengono avviate.

Al termine dell'invio e della ricezione dei dati, usare il Shutdown metodo per disabilitare .Socket Dopo aver chiamato , chiamare Shutdownil Close metodo per rilasciare tutte le risorse associate a Socket.

La Socket classe consente di configurare Socket l'oggetto usando il SetSocketOption metodo . Recuperare queste impostazioni usando il GetSocketOption metodo .