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 .