Condividi tramite


NetworkStream Classe

Definizione

Fornisce il flusso di dati sottostante per l'accesso alla rete.

public ref class NetworkStream : System::IO::Stream
public class NetworkStream : System.IO.Stream
type NetworkStream = class
    inherit Stream
type NetworkStream = class
    inherit Stream
    interface IDisposable
Public Class NetworkStream
Inherits Stream
Ereditarietà
NetworkStream
Ereditarietà
Implementazioni

Commenti

La classe NetworkStream fornisce metodi per l'invio e la ricezione di dati tramite socket Stream in modalità di blocco. Per altre informazioni sul blocco e sul mancato blocco di Sockets, vedere Uso di un socket client asincrono. È possibile usare la classe NetworkStream sia per il trasferimento sincrono che per il trasferimento asincrono dei dati. Per altre informazioni sulla comunicazione sincrona e asincrona, vedere Sockets.

Per creare un NetworkStream, è necessario fornire un Socketconnesso. È anche possibile specificare l'autorizzazione FileAccess di cui dispone il NetworkStream nel Socketfornito. Per impostazione predefinita, la chiusura del NetworkStream non chiude il Socketfornito. Se si desidera che l'NetworkStream disponga dell'autorizzazione per chiudere il Socketspecificato, è necessario specificare true per il valore del parametro ownsSocket.

Usare i metodi Write e Read per operazioni di I/O con blocco sincrono a thread singolo semplice. Se si vuole elaborare l'I/O in modo asincrono, è consigliabile usare i metodi basati su Task o ValueTaskReadAsync e WriteAsync.

Il NetworkStream non supporta l'accesso casuale al flusso di dati di rete. Il valore della proprietà CanSeek, che indica se il flusso supporta la ricerca, è sempre false; la lettura della proprietà Position, la lettura della proprietà Length o la chiamata al metodo Seek genererà un NotSupportedException.

Le operazioni di lettura e scrittura possono essere eseguite contemporaneamente su un'istanza della classe NetworkStream senza la necessità di sincronizzazione. Finché è presente un thread univoco per le operazioni di scrittura e un thread univoco per le operazioni di lettura, non ci saranno interferenze incrociate tra thread di lettura e scrittura e non è necessaria alcuna sincronizzazione.

Costruttori

NetworkStream(Socket)

Crea una nuova istanza della classe NetworkStream per il Socketspecificato.

NetworkStream(Socket, Boolean)

Inizializza una nuova istanza della classe NetworkStream per il Socket specificato con la proprietà Socket specificata.

NetworkStream(Socket, FileAccess)

Crea una nuova istanza della classe NetworkStream per il Socket specificato con i diritti di accesso specificati.

NetworkStream(Socket, FileAccess, Boolean)

Crea una nuova istanza della classe NetworkStream per il Socket specificato con i diritti di accesso specificati e la proprietà Socket specificata.

Proprietà

CanRead

Ottiene un valore che indica se il NetworkStream supporta la lettura.

CanSeek

Ottiene un valore che indica se il flusso supporta la ricerca. Questa proprietà non è attualmente supportata. Questa proprietà restituisce sempre false.

CanTimeout

Indica se le proprietà di timeout sono utilizzabili per NetworkStream.

CanTimeout

Ottiene un valore che determina se il flusso corrente può verificarsi un timeout.

(Ereditato da Stream)
CanWrite

Ottiene un valore che indica se la NetworkStream supporta la scrittura.

DataAvailable

Ottiene un valore che indica se i dati sono disponibili nel NetworkStream da leggere immediatamente.

Length

Ottiene la lunghezza dei dati disponibili nel flusso. Questa proprietà non è attualmente supportata e genera sempre un NotSupportedException.

Position

Ottiene o imposta la posizione corrente nel flusso. Questa proprietà non è attualmente supportata e genera sempre un NotSupportedException.

Readable

Ottiene o imposta un valore che indica se il NetworkStream può essere letto.

ReadTimeout

Ottiene o imposta la quantità di tempo in cui un'operazione di lettura blocca l'attesa dei dati.

ReadTimeout

Ottiene o imposta un valore, espresso in millisecondi, che determina per quanto tempo il flusso tenterà di leggere prima del timeout.

(Ereditato da Stream)
Socket

Ottiene il Socketsottostante.

Writeable

Ottiene un valore che indica se il NetworkStream è scrivibile.

WriteTimeout

Ottiene o imposta la quantità di tempo in cui un'operazione di scrittura blocca l'attesa dei dati.

WriteTimeout

Ottiene o imposta un valore, espresso in millisecondi, che determina per quanto tempo il flusso tenterà di scrivere prima del timeout.

(Ereditato da Stream)

Metodi

BeginRead(Byte[], Int32, Int32, AsyncCallback, Object)

Avvia una lettura asincrona dal NetworkStream.

BeginRead(Byte[], Int32, Int32, AsyncCallback, Object)

Avvia un'operazione di lettura asincrona. Prendere invece in considerazione l'uso di ReadAsync(Byte[], Int32, Int32).

(Ereditato da Stream)
BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object)

Avvia una scrittura asincrona in un flusso.

BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object)

Avvia un'operazione di scrittura asincrona. Prendere invece in considerazione l'uso di WriteAsync(Byte[], Int32, Int32).

(Ereditato da Stream)
Close()

Chiude il NetworkStream.

Close()

Chiude il flusso corrente e rilascia tutte le risorse (ad esempio socket e handle di file) associate al flusso corrente. Invece di chiamare questo metodo, assicurarsi che il flusso sia eliminato correttamente.

(Ereditato da Stream)
Close(Int32)

Chiude il NetworkStream dopo l'attesa del tempo specificato per consentire l'invio dei dati.

Close(TimeSpan)

Chiude il NetworkStream dopo l'attesa dell'intervallo di tempo specificato per consentire l'invio dei dati.

CopyTo(Stream)

Legge i byte dal flusso corrente e li scrive in un altro flusso. Entrambe le posizioni dei flussi sono avanzate in base al numero di byte copiati.

(Ereditato da Stream)
CopyTo(Stream, Int32)

Legge i byte dal flusso corrente e li scrive in un altro flusso, usando una dimensione del buffer specificata. Entrambe le posizioni dei flussi sono avanzate in base al numero di byte copiati.

(Ereditato da Stream)
CopyToAsync(Stream)

Legge in modo asincrono i byte dal flusso corrente e li scrive in un altro flusso. Entrambe le posizioni dei flussi sono avanzate in base al numero di byte copiati.

(Ereditato da Stream)
CopyToAsync(Stream, CancellationToken)

Legge in modo asincrono i byte dal flusso corrente e li scrive in un altro flusso, usando un token di annullamento specificato. Entrambe le posizioni dei flussi sono avanzate in base al numero di byte copiati.

(Ereditato da Stream)
CopyToAsync(Stream, Int32)

Legge in modo asincrono i byte dal flusso corrente e li scrive in un altro flusso, usando una dimensione del buffer specificata. Entrambe le posizioni dei flussi sono avanzate in base al numero di byte copiati.

(Ereditato da Stream)
CopyToAsync(Stream, Int32, CancellationToken)

Legge in modo asincrono i byte dal flusso corrente e li scrive in un altro flusso, usando una dimensione del buffer e un token di annullamento specificati. Entrambe le posizioni dei flussi sono avanzate in base al numero di byte copiati.

(Ereditato da Stream)
CreateObjRef(Type)

Crea un oggetto che contiene tutte le informazioni pertinenti necessarie per generare un proxy utilizzato per comunicare con un oggetto remoto.

(Ereditato da MarshalByRefObject)
CreateWaitHandle()
Obsoleti.
Obsoleti.
Obsoleti.

Alloca un oggetto WaitHandle.

(Ereditato da Stream)
Dispose()

Rilascia tutte le risorse usate dal Stream.

(Ereditato da Stream)
Dispose(Boolean)

Rilascia le risorse non gestite usate dal NetworkStream e, facoltativamente, rilascia le risorse gestite.

DisposeAsync()

Rilascia in modo asincrono le risorse non gestite usate dal Stream.

(Ereditato da Stream)
EndRead(IAsyncResult)

Gestisce la fine di una lettura asincrona.

EndRead(IAsyncResult)

Attende il completamento della lettura asincrona in sospeso. Prendere invece in considerazione l'uso di ReadAsync(Byte[], Int32, Int32).

(Ereditato da Stream)
EndWrite(IAsyncResult)

Gestisce la fine di una scrittura asincrona.

EndWrite(IAsyncResult)

Termina un'operazione di scrittura asincrona. Prendere invece in considerazione l'uso di WriteAsync(Byte[], Int32, Int32).

(Ereditato da Stream)
Equals(Object)

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

(Ereditato da Object)
Finalize()

Rilascia tutte le risorse usate dal NetworkStream.

Flush()

Scarica i dati dal flusso. Questo metodo è riservato per un uso futuro.

FlushAsync()

Cancella in modo asincrono tutti i buffer per questo flusso e determina la scrittura di tutti i dati memorizzati nel buffer nel dispositivo sottostante.

(Ereditato da Stream)
FlushAsync(CancellationToken)

Scarica i dati dal flusso come operazione asincrona.

FlushAsync(CancellationToken)

Cancella in modo asincrono tutti i buffer per questo flusso, determina la scrittura di tutti i dati memorizzati nel buffer nel dispositivo sottostante e monitora le richieste di annullamento.

(Ereditato da Stream)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetLifetimeService()
Obsoleti.

Recupera l'oggetto servizio di durata corrente che controlla i criteri di durata per questa istanza.

(Ereditato da MarshalByRefObject)
GetType()

Ottiene il Type dell'istanza corrente.

(Ereditato da Object)
InitializeLifetimeService()
Obsoleti.

Ottiene un oggetto servizio di durata per controllare i criteri di durata per questa istanza.

(Ereditato da MarshalByRefObject)
MemberwiseClone()

Crea una copia superficiale del Objectcorrente.

(Ereditato da Object)
MemberwiseClone(Boolean)

Crea una copia superficiale dell'oggetto MarshalByRefObject corrente.

(Ereditato da MarshalByRefObject)
ObjectInvariant()
Obsoleti.

Fornisce il supporto per un Contract.

(Ereditato da Stream)
Read(Byte[], Int32, Int32)

Legge i dati dal NetworkStream e li archivia in una matrice di byte.

Read(Span<Byte>)

Legge i dati dal NetworkStream e li archivia in un intervallo di byte in memoria.

Read(Span<Byte>)

Quando sottoposto a override in una classe derivata, legge una sequenza di byte dal flusso corrente e sposta in avanti la posizione all'interno del flusso in base al numero di byte letti.

(Ereditato da Stream)
ReadAsync(Byte[], Int32, Int32)

Legge in modo asincrono una sequenza di byte dal flusso corrente e sposta in avanti la posizione all'interno del flusso in base al numero di byte letti.

(Ereditato da Stream)
ReadAsync(Byte[], Int32, Int32, CancellationToken)

Legge i dati dal NetworkStream e li archivia in un intervallo specificato di una matrice di byte come operazione asincrona.

ReadAsync(Byte[], Int32, Int32, CancellationToken)

Legge in modo asincrono una sequenza di byte dal flusso corrente, sposta in avanti la posizione all'interno del flusso in base al numero di byte letti e monitora le richieste di annullamento.

(Ereditato da Stream)
ReadAsync(Memory<Byte>, CancellationToken)

Legge i dati dal NetworkStream e li archivia in un intervallo di memoria di byte come operazione asincrona.

ReadAsync(Memory<Byte>, CancellationToken)

Legge in modo asincrono una sequenza di byte dal flusso corrente, sposta in avanti la posizione all'interno del flusso in base al numero di byte letti e monitora le richieste di annullamento.

(Ereditato da Stream)
ReadAtLeast(Span<Byte>, Int32, Boolean)

Legge almeno un numero minimo di byte dal flusso corrente e sposta in avanti la posizione all'interno del flusso in base al numero di byte letti.

(Ereditato da Stream)
ReadAtLeastAsync(Memory<Byte>, Int32, Boolean, CancellationToken)

Legge in modo asincrono almeno un numero minimo di byte dal flusso corrente, sposta in avanti la posizione all'interno del flusso in base al numero di byte letti e monitora le richieste di annullamento.

(Ereditato da Stream)
ReadByte()

Legge un byte dal NetworkStream e sposta in avanti la posizione all'interno del flusso di un byte oppure restituisce -1 se alla fine del flusso.

ReadByte()

Legge un byte dal flusso e sposta in avanti la posizione all'interno del flusso di un byte oppure restituisce -1 se alla fine del flusso.

(Ereditato da Stream)
ReadExactly(Byte[], Int32, Int32)

Legge count numero di byte dal flusso corrente e sposta in avanti la posizione all'interno del flusso.

(Ereditato da Stream)
ReadExactly(Span<Byte>)

Legge i byte dal flusso corrente e sposta in avanti la posizione all'interno del flusso fino a quando il buffer non viene riempito.

(Ereditato da Stream)
ReadExactlyAsync(Byte[], Int32, Int32, CancellationToken)

Legge in modo asincrono count numero di byte dal flusso corrente, sposta in avanti la posizione all'interno del flusso e monitora le richieste di annullamento.

(Ereditato da Stream)
ReadExactlyAsync(Memory<Byte>, CancellationToken)

Legge in modo asincrono i byte dal flusso corrente, sposta la posizione all'interno del flusso fino a quando il buffer non viene riempito e monitora le richieste di annullamento.

(Ereditato da Stream)
Seek(Int64, SeekOrigin)

Imposta la posizione corrente del flusso sul valore specificato. Questo metodo non è attualmente supportato e genera sempre un NotSupportedException.

SetLength(Int64)

Imposta la lunghezza del flusso. Questo metodo genera sempre un NotSupportedException.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

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

Scrive i dati nella NetworkStream da un intervallo specificato di una matrice di byte.

Write(ReadOnlySpan<Byte>)

Scrive i dati nella NetworkStream da un intervallo di byte di sola lettura.

Write(ReadOnlySpan<Byte>)

Quando sottoposto a override in una classe derivata, scrive una sequenza di byte nel flusso corrente e sposta in avanti la posizione corrente all'interno del flusso in base al numero di byte scritti.

(Ereditato da Stream)
WriteAsync(Byte[], Int32, Int32)

Scrive in modo asincrono una sequenza di byte nel flusso corrente e sposta in avanti la posizione corrente all'interno del flusso in base al numero di byte scritti.

(Ereditato da Stream)
WriteAsync(Byte[], Int32, Int32, CancellationToken)

Scrive i dati nella NetworkStream dall'intervallo specificato di una matrice di byte come operazione asincrona.

WriteAsync(Byte[], Int32, Int32, CancellationToken)

Scrive in modo asincrono una sequenza di byte nel flusso corrente, sposta in avanti la posizione corrente all'interno del flusso in base al numero di byte scritti e monitora le richieste di annullamento.

(Ereditato da Stream)
WriteAsync(ReadOnlyMemory<Byte>, CancellationToken)

Scrive i dati nella NetworkStream da un intervallo di memoria di byte di sola lettura come operazione asincrona.

WriteAsync(ReadOnlyMemory<Byte>, CancellationToken)

Scrive in modo asincrono una sequenza di byte nel flusso corrente, sposta in avanti la posizione corrente all'interno del flusso in base al numero di byte scritti e monitora le richieste di annullamento.

(Ereditato da Stream)
WriteByte(Byte)

Scrive un byte nella posizione corrente nella NetworkStream e sposta in avanti la posizione all'interno del flusso di un byte.

WriteByte(Byte)

Scrive un byte nella posizione corrente nel flusso e sposta in avanti la posizione all'interno del flusso di un byte.

(Ereditato da Stream)

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 dal NetworkStream.

Metodi di estensione

CopyToAsync(Stream, PipeWriter, CancellationToken)

Legge in modo asincrono i byte dal Stream e li scrive nel PipeWriterspecificato usando un token di annullamento.

ConfigureAwait(IAsyncDisposable, Boolean)

Configura il modo in cui verranno eseguite le attese nelle attività restituite da un oggetto eliminabile asincrono.

Si applica a

Vedi anche