NetworkStream Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Stellt den zugrunde liegenden Datenstrom für den Netzwerkzugriff bereit.
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
- Vererbung
- Vererbung
- Implementiert
Hinweise
Die NetworkStream-Klasse stellt Methoden zum Senden und Empfangen von Daten über Stream Sockets im Blockierungsmodus bereit. Weitere Informationen zum Blockieren und Nichtblockieren von Sockets finden Sie unter Using an Asynchronous Client Socket. Sie können die NetworkStream-Klasse sowohl für synchrone als auch für asynchrone Datenübertragungen verwenden. Weitere Informationen zur synchronen und asynchronen Kommunikation finden Sie unter Sockets.
Um eine NetworkStreamzu erstellen, müssen Sie eine verbundene Socketbereitstellen. Sie können auch angeben, welche FileAccess Berechtigung der NetworkStream über die bereitgestellte Socketverfügt. Standardmäßig schließt das Schließen der NetworkStream die bereitgestellte Socketnicht. Wenn die NetworkStream über die Berechtigung zum Schließen der bereitgestellten Socketverfügen soll, müssen Sie true
für den Wert des ownsSocket
Parameters angeben.
Verwenden Sie die methoden Write und Read für einfache, synchrone Blockierungs-E/A mit einfachem Singlethreading. Wenn Sie Ihre E/A asynchron verarbeiten möchten, sollten Sie die Task- oder ValueTask-basierten Methoden ReadAsync und WriteAsyncverwenden.
Der NetworkStream unterstützt keinen zufälligen Zugriff auf den Netzwerkdatenstrom. Der Wert der CanSeek-Eigenschaft, die angibt, ob der Datenstrom die Suche unterstützt, ist immer false
; das Lesen der Position-Eigenschaft, das Lesen der Length-Eigenschaft oder das Aufrufen der Seek-Methode löst eine NotSupportedExceptionaus.
Lese- und Schreibvorgänge können gleichzeitig für eine Instanz der NetworkStream Klasse ausgeführt werden, ohne dass eine Synchronisierung erforderlich ist. Solange es einen eindeutigen Thread für die Schreibvorgänge und einen eindeutigen Thread für die Lesevorgänge gibt, gibt es keine Querinteraktionen zwischen Lese- und Schreibthreads, und es ist keine Synchronisierung erforderlich.
Konstruktoren
NetworkStream(Socket) |
Erstellt eine neue Instanz der NetworkStream Klasse für die angegebene Socket. |
NetworkStream(Socket, Boolean) |
Initialisiert eine neue Instanz der NetworkStream Klasse für die angegebene Socket mit dem angegebenen Socket Besitz. |
NetworkStream(Socket, FileAccess) |
Erstellt eine neue Instanz der NetworkStream Klasse für die angegebene Socket mit den angegebenen Zugriffsrechten. |
NetworkStream(Socket, FileAccess, Boolean) |
Erstellt eine neue Instanz der NetworkStream-Klasse für die angegebene Socket mit den angegebenen Zugriffsrechten und dem angegebenen Socket Besitz. |
Eigenschaften
CanRead |
Ruft einen Wert ab, der angibt, ob die NetworkStream das Lesen unterstützt. |
CanSeek |
Ruft einen Wert ab, der angibt, ob der Datenstrom die Suche unterstützt. Diese Eigenschaft wird derzeit nicht unterstützt. Diese Eigenschaft gibt immer |
CanTimeout |
Gibt an, ob Timeouteigenschaften für NetworkStreamverwendet werden können. |
CanTimeout |
Ruft einen Wert ab, der bestimmt, ob der aktuelle Datenstrom Timeout ausführen kann. (Geerbt von Stream) |
CanWrite |
Ruft einen Wert ab, der angibt, ob die NetworkStream das Schreiben unterstützt. |
DataAvailable |
Ruft einen Wert ab, der angibt, ob Daten für die NetworkStream verfügbar sind, die sofort gelesen werden sollen. |
Length |
Ruft die Länge der im Datenstrom verfügbaren Daten ab. Diese Eigenschaft wird derzeit nicht unterstützt und löst immer eine NotSupportedExceptionaus. |
Position |
Ruft die aktuelle Position im Datenstrom ab oder legt sie fest. Diese Eigenschaft wird derzeit nicht unterstützt und löst immer eine NotSupportedExceptionaus. |
Readable |
Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob die NetworkStream gelesen werden kann. |
ReadTimeout |
Ruft die Zeitspanne ab, die ein Lesevorgang blockiert, der auf Daten wartet, oder legt diesen fest. |
ReadTimeout |
Dient zum Abrufen oder Festlegen eines Werts in Millisekunden, der bestimmt, wie lange der Datenstrom vor dem Timeout zu lesen versucht. (Geerbt von Stream) |
Socket |
Ruft die zugrunde liegende Socketab. |
Writeable |
Ruft einen Wert ab, der angibt, ob die NetworkStream schreibbar ist. |
WriteTimeout |
Dient zum Abrufen oder Festlegen der Zeitspanne, die ein Schreibvorgang blockiert, der auf Daten wartet. |
WriteTimeout |
Dient zum Abrufen oder Festlegen eines Werts in Millisekunden, der bestimmt, wie lange der Datenstrom versucht, vor dem Timeout zu schreiben. (Geerbt von Stream) |
Methoden
BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) |
Beginnt einen asynchronen Lesevorgang aus dem NetworkStream. |
BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) |
Startet einen asynchronen Lesevorgang. (Verwenden Sie stattdessen ReadAsync(Byte[], Int32, Int32).) (Geerbt von Stream) |
BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) |
Startet einen asynchronen Schreibvorgang in einen Datenstrom. |
BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) |
Startet einen asynchronen Schreibvorgang. (Verwenden Sie stattdessen WriteAsync(Byte[], Int32, Int32).) (Geerbt von Stream) |
Close() |
Schließt die NetworkStream. |
Close() |
Schließt den aktuellen Datenstrom und gibt alle Ressourcen (z. B. Sockets und Dateihandles) frei, die dem aktuellen Datenstrom zugeordnet sind. Anstatt diese Methode aufzurufen, stellen Sie sicher, dass der Datenstrom ordnungsgemäß verworfen ist. (Geerbt von Stream) |
Close(Int32) |
Schließt die NetworkStream nach dem Warten auf die angegebene Zeit, um zuzulassen, dass Daten gesendet werden. |
Close(TimeSpan) |
Schließt die NetworkStream nach dem Warten der angegebenen Zeitspanne, um das Senden von Daten zuzulassen. |
CopyTo(Stream) |
Liest die Bytes aus dem aktuellen Datenstrom und schreibt sie in einen anderen Datenstrom. Beide Datenströme werden um die Anzahl der kopierten Bytes erweitert. (Geerbt von Stream) |
CopyTo(Stream, Int32) |
Liest die Bytes aus dem aktuellen Datenstrom und schreibt sie mithilfe einer angegebenen Puffergröße in einen anderen Datenstrom. Beide Datenströme werden um die Anzahl der kopierten Bytes erweitert. (Geerbt von Stream) |
CopyToAsync(Stream) |
Liest die Bytes asynchron aus dem aktuellen Datenstrom und schreibt sie in einen anderen Datenstrom. Beide Datenströme werden um die Anzahl der kopierten Bytes erweitert. (Geerbt von Stream) |
CopyToAsync(Stream, CancellationToken) |
Liest die Bytes asynchron aus dem aktuellen Datenstrom und schreibt sie mithilfe eines angegebenen Abbruchtokens in einen anderen Datenstrom. Beide Datenströme werden um die Anzahl der kopierten Bytes erweitert. (Geerbt von Stream) |
CopyToAsync(Stream, Int32) |
Liest die Bytes asynchron aus dem aktuellen Datenstrom und schreibt sie mithilfe einer angegebenen Puffergröße in einen anderen Datenstrom. Beide Datenströme werden um die Anzahl der kopierten Bytes erweitert. (Geerbt von Stream) |
CopyToAsync(Stream, Int32, CancellationToken) |
Liest asynchron die Bytes aus dem aktuellen Datenstrom und schreibt sie in einen anderen Datenstrom, wobei eine angegebene Puffergröße und ein Abbruchtoken verwendet wird. Beide Datenströme werden um die Anzahl der kopierten Bytes erweitert. (Geerbt von Stream) |
CreateObjRef(Type) |
Erstellt ein Objekt, das alle relevanten Informationen enthält, die zum Generieren eines Proxys erforderlich sind, der für die Kommunikation mit einem Remoteobjekt verwendet wird. (Geerbt von MarshalByRefObject) |
CreateWaitHandle() |
Veraltet.
Veraltet.
Veraltet.
Weist ein WaitHandle-Objekt zu. (Geerbt von Stream) |
Dispose() |
Gibt alle vom Streamverwendeten Ressourcen frei. (Geerbt von Stream) |
Dispose(Boolean) |
Gibt die nicht verwalteten Ressourcen frei, die vom NetworkStream verwendet werden, und gibt optional die verwalteten Ressourcen frei. |
DisposeAsync() |
Gibt asynchron die nicht verwalteten Ressourcen frei, die vom Streamverwendet werden. (Geerbt von Stream) |
EndRead(IAsyncResult) |
Behandelt das Ende eines asynchronen Lesevorgangs. |
EndRead(IAsyncResult) |
Wartet auf den Abschluss des ausstehenden asynchronen Lesevorgangs. (Verwenden Sie stattdessen ReadAsync(Byte[], Int32, Int32).) (Geerbt von Stream) |
EndWrite(IAsyncResult) |
Behandelt das Ende eines asynchronen Schreibvorgangs. |
EndWrite(IAsyncResult) |
Beendet einen asynchronen Schreibvorgang. (Verwenden Sie stattdessen WriteAsync(Byte[], Int32, Int32).) (Geerbt von Stream) |
Equals(Object) |
Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht. (Geerbt von Object) |
Finalize() |
Gibt alle vom NetworkStreamverwendeten Ressourcen frei. |
Flush() |
Löscht Daten aus dem Datenstrom. Diese Methode ist für die zukünftige Verwendung reserviert. |
FlushAsync() |
Löscht asynchron alle Puffer für diesen Datenstrom und bewirkt, dass alle gepufferten Daten auf das zugrunde liegende Gerät geschrieben werden. (Geerbt von Stream) |
FlushAsync(CancellationToken) |
Löscht Daten aus dem Datenstrom als asynchronen Vorgang. |
FlushAsync(CancellationToken) |
Löscht asynchron alle Puffer für diesen Datenstrom, bewirkt, dass alle gepufferten Daten auf das zugrunde liegende Gerät geschrieben werden, und überwacht Abbruchanforderungen. (Geerbt von Stream) |
GetHashCode() |
Dient als Standardhashfunktion. (Geerbt von Object) |
GetLifetimeService() |
Veraltet.
Ruft das aktuelle Lebensdauerdienstobjekt ab, das die Lebensdauerrichtlinie für diese Instanz steuert. (Geerbt von MarshalByRefObject) |
GetType() |
Ruft die Type der aktuellen Instanz ab. (Geerbt von Object) |
InitializeLifetimeService() |
Veraltet.
Ruft ein Lebensdauerdienstobjekt ab, um die Lebensdauerrichtlinie für diese Instanz zu steuern. (Geerbt von MarshalByRefObject) |
MemberwiseClone() |
Erstellt eine flache Kopie der aktuellen Object. (Geerbt von Object) |
MemberwiseClone(Boolean) |
Erstellt eine flache Kopie des aktuellen MarshalByRefObject-Objekts. (Geerbt von MarshalByRefObject) |
ObjectInvariant() |
Veraltet.
Bietet Unterstützung für eine Contract. (Geerbt von Stream) |
Read(Byte[], Int32, Int32) |
Liest Daten aus dem NetworkStream und speichert sie in einem Bytearray. |
Read(Span<Byte>) |
Liest Daten aus dem NetworkStream und speichert sie in einem Bereich von Bytes im Arbeitsspeicher. |
Read(Span<Byte>) |
Wenn sie in einer abgeleiteten Klasse überschrieben werden, liest sie eine Bytesequenz aus dem aktuellen Datenstrom und wechselt die Position innerhalb des Datenstroms um die Anzahl der gelesenen Bytes. (Geerbt von Stream) |
ReadAsync(Byte[], Int32, Int32) |
Liest asynchron eine Abfolge von Bytes aus dem aktuellen Datenstrom und wechselt die Position innerhalb des Datenstroms um die Anzahl der gelesenen Bytes. (Geerbt von Stream) |
ReadAsync(Byte[], Int32, Int32, CancellationToken) |
Liest Daten aus dem NetworkStream und speichert sie in einem angegebenen Bereich eines Bytearrays als asynchronen Vorgang. |
ReadAsync(Byte[], Int32, Int32, CancellationToken) |
Liest asynchron eine Abfolge von Bytes aus dem aktuellen Datenstrom, wechselt die Position innerhalb des Datenstroms um die Anzahl der gelesenen Bytes und überwacht Abbruchanforderungen. (Geerbt von Stream) |
ReadAsync(Memory<Byte>, CancellationToken) |
Liest Daten aus dem NetworkStream und speichert sie als asynchronen Vorgang in einem Bytespeicherbereich. |
ReadAsync(Memory<Byte>, CancellationToken) |
Liest asynchron eine Abfolge von Bytes aus dem aktuellen Datenstrom, wechselt die Position innerhalb des Datenstroms um die Anzahl der gelesenen Bytes und überwacht Abbruchanforderungen. (Geerbt von Stream) |
ReadAtLeast(Span<Byte>, Int32, Boolean) |
Liest mindestens eine Minimale Anzahl von Bytes aus dem aktuellen Datenstrom und wechselt die Position innerhalb des Datenstroms um die Anzahl der gelesenen Bytes. (Geerbt von Stream) |
ReadAtLeastAsync(Memory<Byte>, Int32, Boolean, CancellationToken) |
Liest asynchron mindestens eine Mindestanzahl von Bytes aus dem aktuellen Datenstrom, wechselt die Position innerhalb des Datenstroms um die Anzahl der gelesenen Bytes und überwacht Abbruchanforderungen. (Geerbt von Stream) |
ReadByte() |
Liest ein Byte aus dem NetworkStream und wechselt die Position innerhalb des Datenstroms um ein Byte oder gibt -1 zurück, wenn am Ende des Datenstroms. |
ReadByte() |
Liest ein Byte aus dem Datenstrom und wechselt die Position innerhalb des Datenstroms um ein Byte oder gibt -1 zurück, wenn am Ende des Datenstroms. (Geerbt von Stream) |
ReadExactly(Byte[], Int32, Int32) |
Liest |
ReadExactly(Span<Byte>) |
Liest Bytes aus dem aktuellen Datenstrom und wechselt die Position innerhalb des Datenstroms, bis die |
ReadExactlyAsync(Byte[], Int32, Int32, CancellationToken) |
Liest asynchron |
ReadExactlyAsync(Memory<Byte>, CancellationToken) |
Liest asynchron Bytes aus dem aktuellen Datenstrom, wechselt die Position innerhalb des Datenstroms, bis die |
Seek(Int64, SeekOrigin) |
Legt die aktuelle Position des Datenstroms auf den angegebenen Wert fest. Diese Methode wird derzeit nicht unterstützt und löst immer eine NotSupportedExceptionaus. |
SetLength(Int64) |
Legt die Länge des Datenstroms fest. Diese Methode löst immer eine NotSupportedExceptionaus. |
ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |
Write(Byte[], Int32, Int32) |
Schreibt Daten aus einem angegebenen Bereich eines Bytearrays in das NetworkStream. |
Write(ReadOnlySpan<Byte>) |
Schreibt Daten aus einer schreibgeschützten Bytespanne in die NetworkStream. |
Write(ReadOnlySpan<Byte>) |
Wenn sie in einer abgeleiteten Klasse überschrieben wird, wird eine Bytesequenz in den aktuellen Datenstrom geschrieben und die aktuelle Position innerhalb dieses Datenstroms um die Anzahl der geschriebenen Bytes vorangestellt. (Geerbt von Stream) |
WriteAsync(Byte[], Int32, Int32) |
Schreibt asynchron eine Bytesequenz in den aktuellen Datenstrom und wechselt die aktuelle Position innerhalb dieses Datenstroms um die Anzahl der geschriebenen Bytes. (Geerbt von Stream) |
WriteAsync(Byte[], Int32, Int32, CancellationToken) |
Schreibt Daten in die NetworkStream aus dem angegebenen Bereich eines Bytearrays als asynchronen Vorgang. |
WriteAsync(Byte[], Int32, Int32, CancellationToken) |
Schreibt asynchron eine Bytesequenz in den aktuellen Datenstrom, wechselt die aktuelle Position innerhalb dieses Datenstroms um die Anzahl der geschriebenen Bytes und überwacht Abbruchanforderungen. (Geerbt von Stream) |
WriteAsync(ReadOnlyMemory<Byte>, CancellationToken) |
Schreibt Daten aus einem schreibgeschützten Speicherbytespeicherbereich als asynchronen Vorgang in den NetworkStream. |
WriteAsync(ReadOnlyMemory<Byte>, CancellationToken) |
Schreibt asynchron eine Bytesequenz in den aktuellen Datenstrom, wechselt die aktuelle Position innerhalb dieses Datenstroms um die Anzahl der geschriebenen Bytes und überwacht Abbruchanforderungen. (Geerbt von Stream) |
WriteByte(Byte) |
Schreibt ein Byte in die aktuelle Position im NetworkStream und wechselt die Position innerhalb des Datenstroms um ein Byte. |
WriteByte(Byte) |
Schreibt ein Byte in die aktuelle Position im Datenstrom und wechselt die Position innerhalb des Datenstroms um ein Byte. (Geerbt von Stream) |
Explizite Schnittstellenimplementierungen
IDisposable.Dispose() |
Diese API unterstützt die Produktinfrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code gedacht. Gibt alle vom NetworkStreamverwendeten Ressourcen frei. |
Erweiterungsmethoden
CopyToAsync(Stream, PipeWriter, CancellationToken) |
Liest die Bytes asynchron aus dem Stream und schreibt sie mithilfe eines Abbruchtokens in das angegebene PipeWriter. |
ConfigureAwait(IAsyncDisposable, Boolean) |
Konfiguriert, wie auf die von einem asynchronen Einweg zurückgegebenen Aufgaben gewartet wird. |
Gilt für:
Weitere Informationen
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Tickets als Feedbackmechanismus für Inhalte auslaufen lassen und es durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unter:Einreichen und Feedback anzeigen für