Socket Classe

Definizione

Implementa l'interfaccia dei socket Berkeley.

public ref class Socket : IDisposable
public class Socket : IDisposable
type Socket = class
    interface IDisposable
Public Class Socket
Implements IDisposable
Ereditarietà
Socket
Implementazioni

Esempio

Nell'esempio seguente viene illustrato come usare la Socket classe per inviare dati a un server HTTP, stampando la risposta ASCII all'output standard. In questo esempio il thread chiamante viene bloccato finché non viene ricevuta l'intera pagina.

private static void SendHttpRequest(Uri? uri = null, int port = 80)
{
    uri ??= new Uri("http://example.com");

    // Construct a minimalistic HTTP/1.1 request
    byte[] requestBytes = Encoding.ASCII.GetBytes(@$"GET {uri.AbsoluteUri} HTTP/1.0
Host: {uri.Host}
Connection: Close

");

    // Create and connect a dual-stack socket
    using Socket socket = new Socket(SocketType.Stream, ProtocolType.Tcp);
    socket.Connect(uri.Host, port);

    // Send the request.
    // For the tiny amount of data in this example, the first call to Send() will likely deliver the buffer completely,
    // however this is not guaranteed to happen for larger real-life buffers.
    // The best practice is to iterate until all the data is sent.
    int bytesSent = 0;
    while (bytesSent < requestBytes.Length)
    {
        bytesSent += socket.Send(requestBytes, bytesSent, requestBytes.Length - bytesSent, SocketFlags.None);
    }

    // Do minimalistic buffering assuming ASCII response
    byte[] responseBytes = new byte[256];
    char[] responseChars = new char[256];

    while (true)
    {
        int bytesReceived = socket.Receive(responseBytes);

        // Receiving 0 bytes means EOF has been reached
        if (bytesReceived == 0) break;

        // Convert byteCount bytes to ASCII characters using the 'responseChars' buffer as destination
        int charCount = Encoding.ASCII.GetChars(responseBytes, 0, bytesReceived, responseChars, 0);

        // Print the contents of the 'responseChars' buffer to Console.Out
        Console.Out.Write(responseChars, 0, charCount);
    }
}

L'esempio seguente illustra lo stesso scenario HTTP GET, usando le API asincrone basate su attività, inoltrando al contempo un CancellationToken oggetto ai metodi asincroni, rendendo annullabile l'intera operazione.

Suggerimento

SocketI metodi asincroni che in genere non restituiscono un CancellationTokenTaskoggetto , allocato nell'heap. Gli overload annullabili vengono sempre ValueTaskrestituiti. L'uso di tali overload consente di ridurre le allocazioni nel codice a prestazioni elevate.

private static async Task SendHttpRequestAsync(Uri? uri = null, int port = 80, CancellationToken cancellationToken = default)
{
    uri ??= new Uri("http://example.com");

    // Construct a minimalistic HTTP/1.1 request
    byte[] requestBytes = Encoding.ASCII.GetBytes(@$"GET {uri.AbsoluteUri} HTTP/1.1
Host: {uri.Host}
Connection: Close

");

    // Create and connect a dual-stack socket
    using Socket socket = new Socket(SocketType.Stream, ProtocolType.Tcp);
    await socket.ConnectAsync(uri.Host, port, cancellationToken);

    // Send the request.
    // For the tiny amount of data in this example, the first call to SendAsync() will likely deliver the buffer completely,
    // however this is not guaranteed to happen for larger real-life buffers.
    // The best practice is to iterate until all the data is sent.
    int bytesSent = 0;
    while (bytesSent < requestBytes.Length)
    {
        bytesSent += await socket.SendAsync(requestBytes.AsMemory(bytesSent), SocketFlags.None);
    }

    // Do minimalistic buffering assuming ASCII response
    byte[] responseBytes = new byte[256];
    char[] responseChars = new char[256];

    while (true)
    {
        int bytesReceived = await socket.ReceiveAsync(responseBytes, SocketFlags.None, cancellationToken);

        // Receiving 0 bytes means EOF has been reached
        if (bytesReceived == 0) break;

        // Convert byteCount bytes to ASCII characters using the 'responseChars' buffer as destination
        int charCount = Encoding.ASCII.GetChars(responseBytes, 0, bytesReceived, responseChars, 0);

        // Print the contents of the 'responseChars' buffer to Console.Out
        await Console.Out.WriteAsync(responseChars.AsMemory(0, charCount), cancellationToken);
    }
}

Commenti

Per altre informazioni su questa API, vedere La sezione note sulle API supplementari per Socket.

Costruttori

Socket(AddressFamily, SocketType, ProtocolType)

Inizializza una nuova istanza della classe Socket utilizzando la famiglia di indirizzi, il tipo di socket e il protocollo specificati.

Socket(SafeSocketHandle)

Inizializza una nuova istanza della classe Socket per l'handle del socket specificato.

Socket(SocketInformation)

Inizializza una nuova istanza della classe Socket utilizzando il valore specificato restituito da DuplicateAndClose(Int32).

Socket(SocketType, ProtocolType)

Inizializza una nuova istanza della classe Socket utilizzando il tipo di socket e il protocollo specificati. Se il sistema operativo supporta IPv6, questo costruttore crea un socket in modalità doppia; in caso contrario, crea un socket IPv4.

Proprietà

AddressFamily

Ottiene la famiglia di indirizzi del Socket.

Available

Ottiene la quantità dei dati ricevuti dalla rete e disponibili per essere letti.

Blocking

Ottiene o imposta un valore che indica se il Socket è in modalità blocco.

Connected

Ottiene un valore che indica se un Socket si è connesso a un host remoto dall'ultima operazione Send o Receive.

DontFragment

Ottiene o imposta un valore che specifica se la classe Socket consente la frammentazione dei datagrammi IP (Internet Protocol).

DualMode

Ottiene o imposta un valore che specifica se è Socket un socket in doppia modalità utilizzato sia per IPv4 che per IPv6.

EnableBroadcast

Ottiene o imposta un Boolean valore che specifica se l'oggetto Socket può inviare pacchetti di trasmissione.

ExclusiveAddressUse

Ottiene o imposta un valore Boolean che specifica se il Socket consente di associare a una porta un unico processo.

Handle

Ottiene l'handle del sistema operativo per il Socket.

IsBound

Ottiene un valore che indica se il Socket è associato a una porta locale specifica.

LingerState

Ottiene o imposta un valore che specifica se il Socket ritarderà la chiusura di un socket durante un tentativo di invio di tutti i dati in sospeso.

LocalEndPoint

Ottiene l'endpoint locale.

MulticastLoopback

Ottiene o imposta un valore che specifica se i pacchetti multicast in uscita devono essere recapitati all'applicazione mittente.

NoDelay

Ottiene o imposta un valore Boolean che specifica se il Socket di flusso utilizza l'algoritmo Nagle.

OSSupportsIPv4

Indica se il sistema operativo sottostante e gli adattatori di rete supportano il protocollo IPv4.

OSSupportsIPv6

Indica se il sistema operativo sottostante e gli adattatori di rete supportano il protocollo IPv6.

OSSupportsUnixDomainSockets

Indica se il sistema operativo sottostante supporta i socket di dominio Unix.

ProtocolType

Ottiene il tipo di protocollo del Socket.

ReceiveBufferSize

Ottiene o imposta un valore che specifica le dimensioni del buffer di ricezione del Socket.

ReceiveTimeout

Ottiene o imposta un valore che specifica l'intervallo di tempo dopo il quale si verifica il timeout di una chiamata Receive sincrona.

RemoteEndPoint

Ottiene l'endpoint remoto.

SafeHandle

Ottiene un oggetto SafeSocketHandle che rappresenta l'handle del socket incapsulato dall'oggetto corrente Socket.

SendBufferSize

Ottiene o imposta un valore che specifica le dimensioni del buffer di invio del Socket.

SendTimeout

Ottiene o imposta un valore che specifica l'intervallo di tempo dopo il quale si verifica il timeout di una chiamata Send sincrona.

SocketType

Ottiene il tipo di Socket.

SupportsIPv4
Obsoleti.
Obsoleti.
Obsoleti.

Ottiene un valore che indica se è disponibile il supporto per IPv4 e se IPv4 è abilitato sull'host corrente.

SupportsIPv6
Obsoleti.
Obsoleti.
Obsoleti.

Ottiene un valore che indica se Framework supporta IPv6 per determinati membri Dns obsoleti.

Ttl

Ottiene o imposta un valore che specifica la durata (TTL) dei pacchetti IP inviati dal Socket.

UseOnlyOverlappedIO
Obsoleti.

Ottiene o imposta un valore che specifica se il socket deve usare solo la modalità di I/O sovrapposta. In .NET 5+ (incluse le versioni di .NET Core), il valore è sempre false.

Metodi

Accept()

Crea un nuovo oggetto Socket per una nuova connessione.

AcceptAsync()

Accetta una connessione in ingresso.

AcceptAsync(CancellationToken)

Accetta una connessione in ingresso.

AcceptAsync(Socket)

Accetta una connessione in ingresso.

AcceptAsync(Socket, CancellationToken)

Accetta una connessione in ingresso.

AcceptAsync(SocketAsyncEventArgs)

Avvia un'operazione asincrona per accettare un tentativo di connessione in ingresso.

BeginAccept(AsyncCallback, Object)

Avvia un'operazione asincrona per accettare un tentativo di connessione in ingresso.

BeginAccept(Int32, AsyncCallback, Object)

Avvia un'operazione asincrona per accettare un tentativo di connessione in ingresso e riceve il primo blocco di dati inviato dall'applicazione client.

BeginAccept(Socket, Int32, AsyncCallback, Object)

Avvia un'operazione asincrona per accettare un tentativo di connessione in ingresso da un socket specificato e riceve il primo blocco di dati inviato dall'applicazione client.

BeginConnect(EndPoint, AsyncCallback, Object)

Avvia una richiesta asincrona di una connessione all'host remoto.

BeginConnect(IPAddress, Int32, AsyncCallback, Object)

Avvia una richiesta asincrona di una connessione all'host remoto. L'host remoto viene specificato da un IPAddress e da un numero di porta.

BeginConnect(IPAddress[], Int32, AsyncCallback, Object)

Avvia una richiesta asincrona di una connessione all'host remoto. L'host viene specificato da una matrice di IPAddress e un numero di porta.

BeginConnect(String, Int32, AsyncCallback, Object)

Avvia una richiesta asincrona di una connessione all'host remoto. L'host viene specificato da un nome host e da un numero di porta.

BeginDisconnect(Boolean, AsyncCallback, Object)

Avvia una richiesta asincrona di disconnessione da un endpoint remoto.

BeginReceive(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)

Inizia a ricevere dati in modalità asincrona da un Socket connesso.

BeginReceive(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object)

Inizia a ricevere dati in modalità asincrona da un Socket connesso.

BeginReceive(IList<ArraySegment<Byte>>, SocketFlags, AsyncCallback, Object)

Inizia a ricevere dati in modalità asincrona da un Socket connesso.

BeginReceive(IList<ArraySegment<Byte>>, SocketFlags, SocketError, AsyncCallback, Object)

Inizia a ricevere dati in modalità asincrona da un Socket connesso.

BeginReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)

Inizia a ricevere dati in modalità asincrona da un dispositivo di rete specificato.

BeginReceiveMessageFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)

Avvia la ricezione asincrona del numero di byte di dati specificato nella posizione specificata del buffer di dati, usando l'oggetto SocketFlags specificato e memorizza le informazioni su endpoint e pacchetti.

BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)

Invia dati in modo asincrono a un Socket connesso.

BeginSend(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object)

Invia dati in modo asincrono a un Socket connesso.

BeginSend(IList<ArraySegment<Byte>>, SocketFlags, AsyncCallback, Object)

Invia dati in modo asincrono a un Socket connesso.

BeginSend(IList<ArraySegment<Byte>>, SocketFlags, SocketError, AsyncCallback, Object)

Invia dati in modo asincrono a un Socket connesso.

BeginSendFile(String, AsyncCallback, Object)

Invia il file fileName a un oggetto connesso Socket utilizzando il flag UseDefaultWorkerThread.

BeginSendFile(String, Byte[], Byte[], TransmitFileOptions, AsyncCallback, Object)

Invia un file e buffer di dati in modo asincrono a un oggetto Socket connesso.

BeginSendTo(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)

Invia i dati in modo asincrono a un host remoto specifico.

Bind(EndPoint)

Associa un Socket a un endpoint locale.

CancelConnectAsync(SocketAsyncEventArgs)

Annulla una richiesta asincrona di una connessione all'host remoto.

Close()

Chiude la connessione all'oggetto Socket e rilascia tutte le risorse associate.

Close(Int32)

Chiude la connessione Socket e rilascia tutte le risorse associate con un timeout specificato in modo da consentire l'invio dei dati in coda.

Connect(EndPoint)

Stabilisce una connessione a un host remoto.

Connect(IPAddress, Int32)

Stabilisce una connessione a un host remoto. L'host è specificato da un indirizzo IP e da un numero di porta.

Connect(IPAddress[], Int32)

Stabilisce una connessione a un host remoto. L'host è specificato da una matrice di indirizzi IP e da un numero di porta.

Connect(String, Int32)

Stabilisce una connessione a un host remoto. L'host viene specificato da un nome host e da un numero di porta.

ConnectAsync(EndPoint)

Stabilisce una connessione a un host remoto.

ConnectAsync(EndPoint, CancellationToken)

Stabilisce una connessione a un host remoto.

ConnectAsync(IPAddress, Int32)

Stabilisce una connessione a un host remoto.

ConnectAsync(IPAddress, Int32, CancellationToken)

Stabilisce una connessione a un host remoto.

ConnectAsync(IPAddress[], Int32)

Stabilisce una connessione a un host remoto.

ConnectAsync(IPAddress[], Int32, CancellationToken)

Stabilisce una connessione a un host remoto.

ConnectAsync(SocketAsyncEventArgs)

Avvia una richiesta asincrona di una connessione all'host remoto.

ConnectAsync(SocketType, ProtocolType, SocketAsyncEventArgs)

Avvia una richiesta asincrona di una connessione all'host remoto.

ConnectAsync(String, Int32)

Stabilisce una connessione a un host remoto.

ConnectAsync(String, Int32, CancellationToken)

Stabilisce una connessione a un host remoto.

Disconnect(Boolean)

Chiude la connessione al socket consentendo di riutilizzare il socket.

DisconnectAsync(Boolean, CancellationToken)

Disconnette un socket connesso dall'host remoto.

DisconnectAsync(SocketAsyncEventArgs)

Avvia una richiesta asincrona di disconnessione da un endpoint remoto.

Dispose()

Rilascia tutte le risorse usate dall'istanza corrente della classe Socket.

Dispose(Boolean)

Rilascia le risorse non gestite usate da Socket e, facoltativamente, elimina le risorse gestite.

DuplicateAndClose(Int32)

Duplica il riferimento al socket per il processo di destinazione e chiude il socket per tale processo.

EndAccept(Byte[], IAsyncResult)

Accetta in modo asincrono una connessione in ingresso e crea un nuovo oggetto Socket per gestire la comunicazione con l'host remoto. Questo metodo restituisce un buffer contenente i dati iniziali trasferiti.

EndAccept(Byte[], Int32, IAsyncResult)

Accetta in modo asincrono una connessione in ingresso e crea un nuovo oggetto Socket per gestire la comunicazione con l'host remoto. Questo metodo restituisce un buffer contenente i dati iniziali e il numero di byte trasferiti.

EndAccept(IAsyncResult)

Accetta in modo asincrono una connessione in ingresso e crea un nuovo oggetto Socket per gestire la comunicazione con l'host remoto.

EndConnect(IAsyncResult)

Termina una richiesta di connessione sincrona in sospeso.

EndDisconnect(IAsyncResult)

Termina una richiesta di disconnessione asincrona in sospeso.

EndReceive(IAsyncResult)

Termina una lettura asincrona in attesa.

EndReceive(IAsyncResult, SocketError)

Termina una lettura asincrona in attesa.

EndReceiveFrom(IAsyncResult, EndPoint)

Termina una lettura asincrona in sospeso da uno specifico endpoint.

EndReceiveMessageFrom(IAsyncResult, SocketFlags, EndPoint, IPPacketInformation)

Termina una lettura asincrona in sospeso da uno specifico endpoint. Questo metodo fornisce inoltre ulteriori informazioni sul pacchetto rispetto a EndReceiveFrom(IAsyncResult, EndPoint).

EndSend(IAsyncResult)

Termina un invio asincrono in attesa.

EndSend(IAsyncResult, SocketError)

Termina un invio asincrono in attesa.

EndSendFile(IAsyncResult)

Termina l'invio asincrono di un file in sospeso.

EndSendTo(IAsyncResult)

Termina un invio asincrono in sospeso a una posizione specifica.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
Finalize()

Rilascia le risorse usate dalla classe Socket.

GetHashCode()

Restituisce un valore hash per un'istanza di Socket.

GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetRawSocketOption(Int32, Int32, Span<Byte>)

Ottiene un valore dell'opzione socket usando il livello e gli ID specifici della piattaforma.

GetSocketOption(SocketOptionLevel, SocketOptionName)

Restituisce il valore di un'opzione Socket specificata, rappresentata da un oggetto.

GetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

Restituisce l'impostazione dell'opzione Socket specificata, rappresentata come una matrice di byte.

GetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

Restituisce in una matrice il valore dell'opzione di Socket specificata.

GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
IOControl(Int32, Byte[], Byte[])

Imposta le modalità operative di basso livello per il Socket utilizzando codici di controllo numerici.

IOControl(IOControlCode, Byte[], Byte[])

Imposta le modalità operative di basso livello per il Socket utilizzando l'enumerazione IOControlCode per specificare i codici di controllo.

Listen()

Colloca un Socket in uno stato di attesa.

Listen(Int32)

Colloca un Socket in uno stato di attesa.

MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
Poll(Int32, SelectMode)

Determina lo stato del Socket.

Poll(TimeSpan, SelectMode)

Determina lo stato del Socket.

Receive(Byte[])

Riceve dati in un buffer di ricezione da un oggetto Socket associato.

Receive(Byte[], Int32, Int32, SocketFlags)

Riceve il numero specificato di byte da un Socket associato nella posizione di offset predefinita del buffer di ricezione, utilizzando il SocketFlags specificato.

Receive(Byte[], Int32, Int32, SocketFlags, SocketError)

Riceve dati in un buffer di ricezione da un Socket associato, utilizzando il SocketFlags specificato.

Receive(Byte[], Int32, SocketFlags)

Riceve in un buffer di ricezione il numero specificato di byte di dati da un oggetto Socket associato, utilizzando l'oggetto SocketFlags specificato.

Receive(Byte[], SocketFlags)

Riceve dati in un buffer di ricezione da un Socket associato, utilizzando il SocketFlags specificato.

Receive(IList<ArraySegment<Byte>>)

Riceve dati da un Socket associato nell'elenco dei buffer di ricezione.

Receive(IList<ArraySegment<Byte>>, SocketFlags)

Riceve dati in un elenco di buffer di ricezione da un Socket associato, utilizzando il SocketFlags specificato.

Receive(IList<ArraySegment<Byte>>, SocketFlags, SocketError)

Riceve dati in un elenco di buffer di ricezione da un Socket associato, utilizzando il SocketFlags specificato.

Receive(Span<Byte>)

Riceve dati in un buffer di ricezione da un oggetto Socket associato.

Receive(Span<Byte>, SocketFlags)

Riceve dati in un buffer di ricezione da un Socket associato, utilizzando il SocketFlags specificato.

Receive(Span<Byte>, SocketFlags, SocketError)

Riceve dati in un buffer di ricezione da un Socket associato, utilizzando il SocketFlags specificato.

ReceiveAsync(ArraySegment<Byte>)

Riceve i dati da un socket connesso.

ReceiveAsync(ArraySegment<Byte>, SocketFlags)

Riceve i dati da un socket connesso.

ReceiveAsync(IList<ArraySegment<Byte>>)

Riceve i dati da un socket connesso.

ReceiveAsync(IList<ArraySegment<Byte>>, SocketFlags)

Riceve i dati da un socket connesso.

ReceiveAsync(Memory<Byte>, CancellationToken)

Riceve i dati da un socket connesso.

ReceiveAsync(Memory<Byte>, SocketFlags, CancellationToken)

Riceve i dati da un socket connesso.

ReceiveAsync(SocketAsyncEventArgs)

Avvia una richiesta asincrona per ricevere dati da un oggetto Socket connesso.

ReceiveFrom(Byte[], EndPoint)

Riceve un datagramma nel buffer di dati e memorizza l'endpoint.

ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)

Riceve il numero specificato di byte di dati nella posizione specificata del buffer di dati usando l'oggetto SocketFlags specificato e archivia l'endpoint.

ReceiveFrom(Byte[], Int32, SocketFlags, EndPoint)

Riceve il numero di byte specificato nel buffer di dati, utilizzando l'oggetto SocketFlags specificato e memorizza l'endpoint.

ReceiveFrom(Byte[], SocketFlags, EndPoint)

Riceve un datagramma nel buffer di dati, utilizzando l'oggetto SocketFlags specificato e memorizza l'endpoint.

ReceiveFrom(Span<Byte>, EndPoint)

Riceve un datagramma nel buffer di dati e memorizza l'endpoint.

ReceiveFrom(Span<Byte>, SocketFlags, EndPoint)

Riceve un datagramma nel buffer di dati, utilizzando l'oggetto SocketFlags specificato e memorizza l'endpoint.

ReceiveFrom(Span<Byte>, SocketFlags, SocketAddress)

Riceve un datagramma nel buffer di dati, utilizzando l'oggetto SocketFlags specificato e memorizza l'endpoint.

ReceiveFromAsync(ArraySegment<Byte>, EndPoint)

Riceve i dati e restituisce l'endpoint dell'host di invio.

ReceiveFromAsync(ArraySegment<Byte>, SocketFlags, EndPoint)

Riceve i dati e restituisce l'endpoint dell'host di invio.

ReceiveFromAsync(Memory<Byte>, EndPoint, CancellationToken)

Riceve i dati e restituisce l'endpoint dell'host di invio.

ReceiveFromAsync(Memory<Byte>, SocketFlags, EndPoint, CancellationToken)

Riceve i dati e restituisce l'endpoint dell'host di invio.

ReceiveFromAsync(Memory<Byte>, SocketFlags, SocketAddress, CancellationToken)

Riceve un datagramma nel buffer di dati, utilizzando l'oggetto SocketFlags specificato e memorizza l'endpoint.

ReceiveFromAsync(SocketAsyncEventArgs)

Inizia a ricevere dati in modalità asincrona da un dispositivo di rete specificato.

ReceiveMessageFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, IPPacketInformation)

Riceve il numero specificato di byte di dati nella posizione specificata del buffer dei dati usando l'oggetto SocketFlags specificato e archivia le informazioni dell'endpoint e del pacchetto.

ReceiveMessageFrom(Span<Byte>, SocketFlags, EndPoint, IPPacketInformation)

Riceve il numero specificato di byte di dati nella posizione specificata del buffer dei dati usando l'oggetto socketFlags specificato e archivia le informazioni dell'endpoint e del pacchetto.

ReceiveMessageFromAsync(ArraySegment<Byte>, EndPoint)

Riceve i dati e restituisce informazioni aggiuntive sul mittente del messaggio.

ReceiveMessageFromAsync(ArraySegment<Byte>, SocketFlags, EndPoint)

Riceve i dati e restituisce informazioni aggiuntive sul mittente del messaggio.

ReceiveMessageFromAsync(Memory<Byte>, EndPoint, CancellationToken)

Riceve i dati e restituisce informazioni aggiuntive sul mittente del messaggio.

ReceiveMessageFromAsync(Memory<Byte>, SocketFlags, EndPoint, CancellationToken)

Riceve i dati e restituisce informazioni aggiuntive sul mittente del messaggio.

ReceiveMessageFromAsync(SocketAsyncEventArgs)

Avvia la ricezione asincrona del numero di byte specificato in una posizione specificata nel buffer di dati, utilizzando l'oggetto SocketFlags specificato, e memorizza l'endpoint e le informazioni sui pacchetti.

Select(IList, IList, IList, Int32)

Determina lo stato di uno o più socket.

Select(IList, IList, IList, TimeSpan)

Determina lo stato di uno o più socket.

Send(Byte[])

Invia dati a un Socket connesso.

Send(Byte[], Int32, Int32, SocketFlags)

Invia il numero specificato di byte di dati a un oggetto Socket connesso, a partire dall'offset specificato e usando l'oggetto SocketFlags specificato.

Send(Byte[], Int32, Int32, SocketFlags, SocketError)

Invia il numero specificato di byte di dati a un oggetto Socket connesso, a partire dall'offset specificato e usando l'oggetto SocketFlags specificato.

Send(Byte[], Int32, SocketFlags)

Invia il numero specificato di byte di dati a un oggetto Socket connesso, utilizzando l'oggetto SocketFlags specificato.

Send(Byte[], SocketFlags)

Invia dati a un oggetto Socket connesso utilizzando l'oggetto SocketFlags specificato.

Send(IList<ArraySegment<Byte>>)

Invia l'insieme di buffer dell'elenco a un Socket connesso.

Send(IList<ArraySegment<Byte>>, SocketFlags)

Invia l'insieme di buffer dell'elenco a un Socket connesso utilizzando i SocketFlags specificati.

Send(IList<ArraySegment<Byte>>, SocketFlags, SocketError)

Invia l'insieme di buffer dell'elenco a un Socket connesso utilizzando i SocketFlags specificati.

Send(ReadOnlySpan<Byte>)

Invia dati a un Socket connesso.

Send(ReadOnlySpan<Byte>, SocketFlags)

Invia dati a un oggetto Socket connesso utilizzando l'oggetto SocketFlags specificato.

Send(ReadOnlySpan<Byte>, SocketFlags, SocketError)

Invia dati a un oggetto Socket connesso utilizzando l'oggetto SocketFlags specificato.

SendAsync(ArraySegment<Byte>)

Invia dati su un socket connesso.

SendAsync(ArraySegment<Byte>, SocketFlags)

Invia dati su un socket connesso.

SendAsync(IList<ArraySegment<Byte>>)

Invia dati su un socket connesso.

SendAsync(IList<ArraySegment<Byte>>, SocketFlags)

Invia dati su un socket connesso.

SendAsync(ReadOnlyMemory<Byte>, CancellationToken)

Invia dati su un socket connesso.

SendAsync(ReadOnlyMemory<Byte>, SocketFlags, CancellationToken)

Invia dati su un socket connesso.

SendAsync(SocketAsyncEventArgs)

Invia i dati in modo asincrono a un oggetto Socket connesso.

SendFile(String)

Invia il file fileName a un oggetto connesso Socket con il flag di trasmissione UseDefaultWorkerThread.

SendFile(String, Byte[], Byte[], TransmitFileOptions)

Invia il file fileName e i buffer di dati a un oggetto Socket connesso usando il valore di TransmitFileOptions specificato.

SendFile(String, ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, TransmitFileOptions)

Invia il file fileName e i buffer di dati a un oggetto Socket connesso usando il valore di TransmitFileOptions specificato.

SendFileAsync(String, CancellationToken)

Invia il file fileName a un oggetto connesso Socket .

SendFileAsync(String, ReadOnlyMemory<Byte>, ReadOnlyMemory<Byte>, TransmitFileOptions, CancellationToken)

Invia il file fileName e i buffer di dati a un oggetto Socket connesso usando il valore di TransmitFileOptions specificato.

SendPacketsAsync(SocketAsyncEventArgs)

Invia in modo asincrono un insieme di file o di buffer di dati in memoria a un oggetto Socket connesso.

SendTo(Byte[], EndPoint)

Invia dati a un endpoint specifico.

SendTo(Byte[], Int32, Int32, SocketFlags, EndPoint)

Invia il numero di byte di dati specificato all'endpoint specificato, a partire dalla posizione specificata nel buffer, utilizzando l'oggetto SocketFlags specificato.

SendTo(Byte[], Int32, SocketFlags, EndPoint)

Invia il numero specificato di byte di dati all'endpoint specificato, utilizzando l'oggetto SocketFlags specificato.

SendTo(Byte[], SocketFlags, EndPoint)

Invia dati a un endpoint specifico utilizzando l'oggetto SocketFlags specificato.

SendTo(ReadOnlySpan<Byte>, EndPoint)

Invia dati a un endpoint specifico.

SendTo(ReadOnlySpan<Byte>, SocketFlags, EndPoint)

Invia dati a un endpoint specifico utilizzando l'oggetto SocketFlags specificato.

SendTo(ReadOnlySpan<Byte>, SocketFlags, SocketAddress)

Invia dati a un endpoint specifico utilizzando l'oggetto SocketFlags specificato.

SendToAsync(ArraySegment<Byte>, EndPoint)

Invia i dati all'host remoto specificato.

SendToAsync(ArraySegment<Byte>, SocketFlags, EndPoint)

Invia i dati all'host remoto specificato.

SendToAsync(ReadOnlyMemory<Byte>, EndPoint, CancellationToken)

Invia i dati all'host remoto specificato.

SendToAsync(ReadOnlyMemory<Byte>, SocketFlags, EndPoint, CancellationToken)

Invia i dati all'host remoto specificato.

SendToAsync(ReadOnlyMemory<Byte>, SocketFlags, SocketAddress, CancellationToken)

Invia dati a un endpoint specifico utilizzando l'oggetto SocketFlags specificato.

SendToAsync(SocketAsyncEventArgs)

Invia i dati in modo asincrono a un host remoto specifico.

SetIPProtectionLevel(IPProtectionLevel)

Imposta il livello di protezione IP su un socket.

SetRawSocketOption(Int32, Int32, ReadOnlySpan<Byte>)

Imposta un valore dell'opzione socket usando il livello e gli ID specifici della piattaforma.

SetSocketOption(SocketOptionLevel, SocketOptionName, Boolean)

Imposta l'opzione Socket specificata sul valore Boolean specificato.

SetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

Imposta l'opzione Socket specificata sul valore specificato, rappresentato come una matrice di byte.

SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

Imposta l'opzione Socket specificata sull'intero specificato.

SetSocketOption(SocketOptionLevel, SocketOptionName, Object)

Imposta l'opzione Socket specificata sul valore specificato, rappresentato come un oggetto.

Shutdown(SocketShutdown)

Disabilita le operazioni di invio e di ricezione su un Socket.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

IDisposable.Dispose()

Questa API supporta l'infrastruttura del prodotto e non è previsto che venga usata direttamente dal codice.

Rilascia tutte le risorse usate da Socket.

Metodi di estensione

AcceptAsync(Socket)

Esegue un'operazione asincrona per accettare un tentativo di connessione in ingresso nel socket.

AcceptAsync(Socket, Socket)

Esegue un'operazione asincrona per accettare un tentativo di connessione in ingresso nel socket.

ConnectAsync(Socket, EndPoint)

Stabilisce una connessione a un host remoto.

ConnectAsync(Socket, EndPoint, CancellationToken)

Stabilisce una connessione a un host remoto.

ConnectAsync(Socket, IPAddress, Int32)

Stabilisce una connessione a un host remoto. L'host è specificato da un indirizzo IP e da un numero di porta.

ConnectAsync(Socket, IPAddress, Int32, CancellationToken)

Stabilisce una connessione a un host remoto, specificato da un indirizzo IP e da un numero di porta.

ConnectAsync(Socket, IPAddress[], Int32)

Stabilisce una connessione a un host remoto. L'host è specificato da una matrice di indirizzi IP e da un numero di porta.

ConnectAsync(Socket, IPAddress[], Int32, CancellationToken)

Stabilisce una connessione a un host remoto, specificata da una matrice di indirizzi IP e un numero di porta.

ConnectAsync(Socket, String, Int32)

Stabilisce una connessione a un host remoto. L'host viene specificato da un nome host e da un numero di porta.

ConnectAsync(Socket, String, Int32, CancellationToken)

Stabilisce una connessione a un host remoto, specificato da un nome host e da un numero di porta.

ReceiveAsync(Socket, ArraySegment<Byte>, SocketFlags)

Riceve i dati da un socket connesso.

ReceiveAsync(Socket, IList<ArraySegment<Byte>>, SocketFlags)

Riceve i dati da un socket connesso.

ReceiveAsync(Socket, Memory<Byte>, SocketFlags, CancellationToken)

Riceve i dati da un socket connesso.

ReceiveFromAsync(Socket, ArraySegment<Byte>, SocketFlags, EndPoint)

Riceve i dati da un dispositivo di rete specificato.

ReceiveMessageFromAsync(Socket, ArraySegment<Byte>, SocketFlags, EndPoint)

Riceve il numero specificato di byte di dati nella posizione specificata del buffer dei dati usando l'oggetto SocketFlags specificato e archivia le informazioni dell'endpoint e del pacchetto.

SendAsync(Socket, ArraySegment<Byte>, SocketFlags)

Invia i dati a un socket connesso.

SendAsync(Socket, IList<ArraySegment<Byte>>, SocketFlags)

Invia i dati a un socket connesso.

SendAsync(Socket, ReadOnlyMemory<Byte>, SocketFlags, CancellationToken)

Invia i dati a un socket connesso.

SendToAsync(Socket, ArraySegment<Byte>, SocketFlags, EndPoint)

Invia i dati in modo asincrono a un host remoto specifico.

Si applica a

Thread safety

È possibile eseguire contemporaneamente un'operazione di invio e ricezione in un'istanza Socket , ma non è consigliabile eseguire più chiamate di invio o ricezione contemporaneamente. A seconda dell'implementazione della piattaforma sottostante, ciò può comportare l'interleaving dei dati imprevisti per gli invii o la ricezione di buffer di grandi dimensioni o multi-buffer.

Vedi anche