Socket Classe

Definizione

Implementa l'interfaccia 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.

Tip

SocketI metodi asincroni che non accettano in genere 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 Osservazioni supplementari sulle API per Socket.

Costruttori

Nome Descrizione
Socket(AddressFamily, SocketType, ProtocolType)

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

Socket(SocketInformation)

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

Socket(SocketType, ProtocolType)

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

Proprietà

Nome Descrizione
AddressFamily

Ottiene la famiglia di indirizzi dell'oggetto Socket.

Available

Ottiene la quantità di dati ricevuti dalla rete ed è disponibile per la lettura.

Blocking

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

Connected

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

DontFragment

Ottiene o imposta un valore che specifica se Socket consente di frammentare i datagrammi IP (Internet Protocol).

DualMode

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

EnableBroadcast

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

ExclusiveAddressUse

Ottiene o imposta un valore che indica se consente a un solo processo di eseguire l'associazione Socket a una porta.

Handle

Ottiene l'handle del sistema operativo per l'oggetto Socket.

IsBound

Ottiene un valore che indica se l'oggetto Socket è associato a una porta locale specifica.

LingerState

Ottiene o imposta un valore che specifica se l'oggetto ritarderà la Socket chiusura di un socket nel tentativo di inviare tutti i dati in sospeso.

LocalEndPoint

Ottiene l'endpoint locale.

MulticastLoopback

Ottiene o imposta un valore che specifica se i pacchetti multicast in uscita vengono recapitati all'applicazione di invio.

NoDelay

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

OSSupportsIPv4

Indica se il sistema operativo sottostante e gli adattatori di rete supportano Internet Protocol versione 4 (IPv4).

OSSupportsIPv6

Indica se il sistema operativo sottostante e gli adattatori di rete supportano Internet Protocol versione 6 (IPv6).

ProtocolType

Ottiene il tipo di protocollo dell'oggetto Socket.

ReceiveBufferSize

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

ReceiveTimeout

Ottiene o imposta un valore che specifica la quantità di tempo trascorsa la quale si verifica il timeout di una chiamata sincrona Receive .

RemoteEndPoint

Ottiene l'endpoint remoto.

SendBufferSize

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

SendTimeout

Ottiene o imposta un valore che specifica la quantità di tempo trascorsa la quale si verifica il timeout di una chiamata sincrona Send .

SocketType

Ottiene il tipo del Socket.

SupportsIPv4
Obsoleti.
Obsoleti.

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

SupportsIPv6
Obsoleti.
Obsoleti.

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

Ttl

Ottiene o imposta un valore che specifica il valore TTL (Time To Live) dei pacchetti IP (Internet Protocol) inviati da Socket.

UseOnlyOverlappedIO

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

Metodi

Nome Descrizione
Accept()

Crea un nuovo Socket oggetto per una connessione appena creata.

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 inviati 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 inviati dall'applicazione client.

BeginConnect(EndPoint, AsyncCallback, Object)

Avvia una richiesta asincrona per una connessione host remota.

BeginConnect(IPAddress, Int32, AsyncCallback, Object)

Avvia una richiesta asincrona per una connessione host remota. L'host viene specificato da un IPAddress oggetto e da un numero di porta.

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

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

BeginConnect(String, Int32, AsyncCallback, Object)

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

BeginDisconnect(Boolean, AsyncCallback, Object)

Avvia una richiesta asincrona per disconnettersi da un endpoint remoto.

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

Inizia a ricevere i dati in modo asincrono da un oggetto connesso Socket.

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

Inizia a ricevere i dati in modo asincrono da un oggetto connesso Socket.

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

Inizia a ricevere i dati in modo asincrono da un oggetto connesso Socket.

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

Inizia a ricevere i dati in modo asincrono da un oggetto connesso Socket.

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

Inizia a ricevere i dati in modo asincrono da un dispositivo di rete specificato.

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

Inizia a ricevere in modo asincrono il numero specificato di byte di dati nella posizione specificata del buffer di dati, usando l'oggetto specificato SocketFlagse archivia l'endpoint e le informazioni sui pacchetti.

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

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

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

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

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

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

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

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

BeginSendFile(String, AsyncCallback, Object)

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

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

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

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

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

Bind(EndPoint)

Associa un oggetto Socket a un endpoint locale.

CancelConnectAsync(SocketAsyncEventArgs)

Annulla una richiesta asincrona per una connessione host remota.

Close()

Chiude la Socket connessione e rilascia tutte le risorse associate.

Close(Int32)

Chiude la Socket connessione e rilascia tutte le risorse associate con un timeout specificato per 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 viene specificato da un indirizzo IP e da un numero di porta.

Connect(IPAddress[], Int32)

Stabilisce una connessione a un host remoto. L'host viene 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(SocketAsyncEventArgs)

Avvia una richiesta asincrona per una connessione a un host remoto.

ConnectAsync(SocketType, ProtocolType, SocketAsyncEventArgs)

Avvia una richiesta asincrona per una connessione a un host remoto.

Disconnect(Boolean)

Chiude la connessione socket e consente il riutilizzo del socket.

DisconnectAsync(SocketAsyncEventArgs)

Avvia una richiesta asincrona per disconnettersi da un endpoint remoto.

Dispose()

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

Dispose(Boolean)

Rilascia le risorse non gestite usate da Sockete, facoltativamente, elimina le risorse gestite.

DuplicateAndClose(Int32)

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

EndAccept(Byte[], IAsyncResult)

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

EndAccept(Byte[], Int32, IAsyncResult)

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

EndAccept(IAsyncResult)

Accetta in modo asincrono un tentativo di connessione in ingresso e crea un nuovo Socket oggetto per gestire la comunicazione dell'host remoto.

EndConnect(IAsyncResult)

Termina una richiesta di connessione asincrona in sospeso.

EndDisconnect(IAsyncResult)

Termina una richiesta di disconnessione asincrona in sospeso.

EndReceive(IAsyncResult, SocketError)

Termina una lettura asincrona in sospeso.

EndReceive(IAsyncResult)

Termina una lettura asincrona in sospeso.

EndReceiveFrom(IAsyncResult, EndPoint)

Termina una lettura asincrona in sospeso da un endpoint specifico.

EndReceiveMessageFrom(IAsyncResult, SocketFlags, EndPoint, IPPacketInformation)

Termina una lettura asincrona in sospeso da un endpoint specifico. Questo metodo rivela anche altre informazioni sul pacchetto rispetto EndReceiveFrom(IAsyncResult, EndPoint)a .

EndSend(IAsyncResult, SocketError)

Termina un invio asincrono in sospeso.

EndSend(IAsyncResult)

Termina un invio asincrono in sospeso.

EndSendFile(IAsyncResult)

Termina un invio asincrono in sospeso di un file.

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()

Libera le risorse usate dalla Socket classe .

GetHashCode()

Restituisce un valore hash per un'istanza Socket di .

GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

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

GetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

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

GetSocketOption(SocketOptionLevel, SocketOptionName)

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

GetType()

Ottiene il Type dell'istanza corrente.

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

Imposta le modalità operative di basso livello per l'utilizzo Socket di codici di controllo numerici.

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

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

Listen(Int32)

Posiziona un oggetto Socket in uno stato di ascolto.

MemberwiseClone()

Crea una copia superficiale del Objectcorrente.

(Ereditato da Object)
Poll(Int32, SelectMode)

Determina lo stato dell'oggetto Socket.

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

Riceve i dati da un oggetto associato Socket in un buffer di ricezione, usando l'oggetto specificato SocketFlags.

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

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

Receive(Byte[], Int32, SocketFlags)

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

Receive(Byte[], SocketFlags)

Riceve i dati da un oggetto associato Socket in un buffer di ricezione, usando l'oggetto specificato SocketFlags.

Receive(Byte[])

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

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

Riceve i dati da un oggetto associato Socket all'elenco di buffer di ricezione, usando l'oggetto specificato SocketFlags.

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

Riceve i dati da un oggetto associato Socket all'elenco di buffer di ricezione, usando l'oggetto specificato SocketFlags.

Receive(IList<ArraySegment<Byte>>)

Riceve i dati da un oggetto associato Socket all'elenco di buffer di ricezione.

Receive(Span<Byte>, SocketFlags, SocketError)

Riceve i dati da un oggetto associato Socket in un buffer di ricezione, usando l'oggetto specificato SocketFlags.

Receive(Span<Byte>, SocketFlags)

Riceve i dati da un oggetto associato Socket in un buffer di ricezione, usando l'oggetto specificato SocketFlags.

Receive(Span<Byte>)

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

ReceiveAsync(SocketAsyncEventArgs)

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

ReceiveFrom(Byte[], EndPoint)

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

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

Riceve il numero specificato di byte di dati nella posizione specificata del buffer di dati, utilizzando l'oggetto specificato SocketFlagse archivia l'endpoint.

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

Riceve il numero specificato di byte nel buffer di dati, usando l'oggetto specificato e archivia SocketFlagsl'endpoint.

ReceiveFrom(Byte[], SocketFlags, EndPoint)

Riceve un datagramma nel buffer di dati, usando l'oggetto specificato e archivia SocketFlagsl'endpoint.

ReceiveFromAsync(SocketAsyncEventArgs)

Inizia a ricevere i dati in modo asincrono 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 di dati, utilizzando l'oggetto specificato SocketFlagse archivia l'endpoint e le informazioni sui pacchetti.

ReceiveMessageFromAsync(SocketAsyncEventArgs)

Inizia a ricevere in modo asincrono il numero specificato di byte di dati nella posizione specificata nel buffer di dati, usando l'oggetto specificato SocketFlagse archivia l'endpoint e le informazioni sui pacchetti.

Select(IList, IList, IList, Int32)

Determina lo stato di uno o più socket.

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

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

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

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

Send(Byte[], Int32, SocketFlags)

Invia il numero specificato di byte di dati a un oggetto connesso Socketutilizzando l'oggetto specificato SocketFlags.

Send(Byte[], SocketFlags)

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

Send(Byte[])

Invia dati a un oggetto connesso Socket.

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

Invia il set di buffer nell'elenco a un oggetto connesso Socketusando l'oggetto specificato SocketFlags.

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

Invia il set di buffer nell'elenco a un oggetto connesso Socketusando l'oggetto specificato SocketFlags.

Send(IList<ArraySegment<Byte>>)

Invia il set di buffer nell'elenco a un oggetto connesso Socket.

Send(ReadOnlySpan<Byte>, SocketFlags, SocketError)

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

Send(ReadOnlySpan<Byte>, SocketFlags)

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

Send(ReadOnlySpan<Byte>)

Invia dati a un oggetto connesso Socket.

SendAsync(SocketAsyncEventArgs)

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

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

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

SendFile(String)

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

SendPacketsAsync(SocketAsyncEventArgs)

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

SendTo(Byte[], EndPoint)

Invia i dati all'endpoint specificato.

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

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

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

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

SendTo(Byte[], SocketFlags, EndPoint)

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

SendToAsync(SocketAsyncEventArgs)

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

SetIPProtectionLevel(IPProtectionLevel)

Imposta il livello di protezione IP su un socket.

SetSocketOption(SocketOptionLevel, SocketOptionName, Boolean)

Imposta l'opzione specificata Socket sul valore specificato Boolean .

SetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

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

SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

Imposta l'opzione specificata sul valore intero specificato Socket .

SetSocketOption(SocketOptionLevel, SocketOptionName, Object)

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

Shutdown(SocketShutdown)

Disabilita l'invio e la ricezione in un oggetto Socket.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

Nome Descrizione
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

Nome Descrizione
AcceptAsync(Socket, Socket)

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

AcceptAsync(Socket)

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

ConnectAsync(Socket, EndPoint)

Stabilisce una connessione a un host remoto.

ConnectAsync(Socket, IPAddress, Int32)

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

ConnectAsync(Socket, IPAddress[], Int32)

Stabilisce una connessione a un host remoto. L'host viene specificato da una matrice di indirizzi IP e da 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.

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 di dati, utilizzando l'oggetto specificato SocketFlagse archivia l'endpoint e le informazioni sui pacchetti.

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 di , ma non è consigliabile eseguire più chiamate di invio o ricezione simultanee. A seconda dell'implementazione della piattaforma sottostante, ciò può comportare l'interleaving dei dati imprevisti per l'invio o la ricezione di buffer di grandi dimensioni o multi-buffer.

Vedi anche