NetworkStream Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Обеспечивает базовый поток данных для доступа к сети.
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
- Наследование
- Наследование
- Реализации
Комментарии
Класс NetworkStream предоставляет методы для отправки и получения данных через Stream сокеты в режиме блокировки. Дополнительные сведения о блокировке и неблокировке Socketсм. в разделе Использование асинхронного сокета клиента. Класс можно использовать NetworkStream как для синхронной, так и для асинхронной передачи данных. Дополнительные сведения о синхронном и асинхронном взаимодействии см. в разделе Сокеты.
Чтобы создать NetworkStream, необходимо предоставить подключенный Socketобъект . Вы также можете указать, какое FileAccess разрешение NetworkStream имеет на предоставленный Socketобъект . По умолчанию при закрытии NetworkStream не закрывается предоставленный Socketобъект . Если требуетсяNetworkStream, чтобы у объекта было разрешение на закрытие предоставленного SocketownsSocket
, необходимо указать true
для значения параметра .
Write Используйте методы и Read для простых однопоточных синхронных блокирующих операций ввода-вывода. Если вы хотите обрабатывать ввод-вывод асинхронно, рекомендуется использовать Task методы ReadAsync или ValueTaskи WriteAsync.
не NetworkStream поддерживает случайный доступ к потоку сетевых данных. Значение CanSeek свойства , которое указывает, поддерживает ли поток поиск, всегда false
; чтение Position свойства, чтение Length свойства или вызов Seek метода вызовет NotSupportedException.
Операции чтения и записи можно выполнять одновременно с экземпляром NetworkStream класса без необходимости синхронизации. Пока существует один уникальный поток для операций записи и один уникальный поток для операций чтения, между потоками чтения и записи не будет никаких перекрестных помех и синхронизация не требуется.
Конструкторы
NetworkStream(Socket) |
Создает новый экземпляр класса NetworkStream для указанного объекта Socket. |
NetworkStream(Socket, Boolean) |
Инициализирует новый экземпляр класса NetworkStream для указанного объекта Socket с заданным правом на владение Socket. |
NetworkStream(Socket, FileAccess) |
Создает новый экземпляр класса NetworkStream для указанного объекта Socket с заданными правами на доступ. |
NetworkStream(Socket, FileAccess, Boolean) |
Создает новый экземпляр класса NetworkStream для указанного объекта Socket с заданными правами доступа и указанными правами владения объектом Socket. |
Свойства
CanRead |
Возвращает значение, указывающее, поддерживает ли объект NetworkStream чтение. |
CanSeek |
Получает значение, указывающее, поддерживает ли поток поиск. Данное свойство в настоящий момент не поддерживается. Данное свойство всегда возвращает значение |
CanTimeout |
Указывает, применимы ли для объекта NetworkStream свойства тайм-аута. |
CanTimeout |
Возвращает значение, которое показывает, может ли для данного потока истечь время ожидания. (Унаследовано от Stream) |
CanWrite |
Получает значение, указывающее, поддерживает ли объект NetworkStream запись. |
DataAvailable |
Возвращает значение, указывающее, доступны ли данные в объекте для немедленного NetworkStream чтения. |
Length |
Получает длину данных, доступных в потоке. Это свойство в настоящее время не поддерживается, и обращение к нему всегда создает исключение NotSupportedException. |
Position |
Возвращает или задает текущую позицию в потоке. Это свойство в настоящее время не поддерживается, и обращение к нему всегда создает исключение NotSupportedException. |
Readable |
Получает или устанавливает значение, указывающее, может ли выполняться чтение из объекта NetworkStream. |
ReadTimeout |
Возвращает или задает время, в течение которого операция чтения блокирует ожидание данных. |
ReadTimeout |
Возвращает или задает значение в миллисекундах, определяющее период времени, отведенного потоку на выполнение операции чтения. (Унаследовано от Stream) |
Socket |
Возвращает основной объект Socket. |
Writeable |
Получает значение, указывающее, предусмотрена ли запись в объект NetworkStream. |
WriteTimeout |
Возвращает или задает время, в течение которого операция записи блокирует ожидание данных. |
WriteTimeout |
Возвращает или задает значение в миллисекундах, определяющее период времени, отведенного потоку на выполнение операции записи. (Унаследовано от Stream) |
Методы
BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) |
Начинает асинхронное чтение из объекта NetworkStream. |
BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) |
Начинает операцию асинхронного чтения. (Рекомендуется использовать ReadAsync(Byte[], Int32, Int32).) (Унаследовано от Stream) |
BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) |
Начинает асинхронную запись в поток. |
BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) |
Начинает операцию асинхронной записи. (Рекомендуется использовать WriteAsync(Byte[], Int32, Int32).) (Унаследовано от Stream) |
Close() |
Закрывает объект NetworkStream. |
Close() |
Закрывает текущий поток и отключает все ресурсы (например, сокеты и файловые дескрипторы), связанные с текущим потоком. Вместо вызова данного метода, убедитесь в том, что поток надлежащим образом ликвидирован. (Унаследовано от Stream) |
Close(Int32) |
Закрывает объект NetworkStream после ожидания в течение указанного времени, позволяя выполнить отправку данных. |
Close(TimeSpan) |
Закрывает после NetworkStream ожидания указанного периода времени, чтобы разрешить отправку данных. |
CopyTo(Stream) |
Считывает байты из текущего потока и записывает их в другой поток. Обе позиции потоков расширены по количеству скопированных байтов. (Унаследовано от Stream) |
CopyTo(Stream, Int32) |
Считывает байты из текущего потока и записывает их в другой поток, используя указанный размер буфера. Обе позиции потоков расширены по количеству скопированных байтов. (Унаследовано от Stream) |
CopyToAsync(Stream) |
Асинхронно считывает байты из текущего потока и записывает их в другой поток. Обе позиции потоков расширены по количеству скопированных байтов. (Унаследовано от Stream) |
CopyToAsync(Stream, CancellationToken) |
Асинхронно считывает байты из текущего потока и записывает их в другой поток, используя указанный токен отмены. Обе позиции потоков расширены по количеству скопированных байтов. (Унаследовано от Stream) |
CopyToAsync(Stream, Int32) |
Асинхронно считывает байты из текущего потока и записывает их в другой поток, используя указанный размер буфера. Обе позиции потоков расширены по количеству скопированных байтов. (Унаследовано от Stream) |
CopyToAsync(Stream, Int32, CancellationToken) |
Асинхронно считывает байты из текущего потока и записывает их в другой поток, используя указанный размер буфера и токен отмены. Обе позиции потоков расширены по количеству скопированных байтов. (Унаследовано от Stream) |
CreateObjRef(Type) |
Создает объект, который содержит всю необходимую информацию для создания прокси-сервера, используемого для взаимодействия с удаленным объектом. (Унаследовано от MarshalByRefObject) |
CreateWaitHandle() |
Устаревшие..
Устаревшие..
Устаревшие..
Выделяет объект WaitHandle. (Унаследовано от Stream) |
Dispose() |
Освобождает все ресурсы, занятые модулем Stream. (Унаследовано от Stream) |
Dispose(Boolean) |
Освобождает неуправляемые ресурсы, используемые объектом NetworkStream, а при необходимости освобождает также управляемые ресурсы. |
DisposeAsync() |
Асинхронно освобождает неуправляемые ресурсы, используемые классом Stream. (Унаследовано от Stream) |
EndRead(IAsyncResult) |
Обрабатывает завершение асинхронного чтения. |
EndRead(IAsyncResult) |
Ожидает завершения отложенного асинхронного чтения. (Рекомендуется использовать ReadAsync(Byte[], Int32, Int32).) (Унаследовано от Stream) |
EndWrite(IAsyncResult) |
Обрабатывает завершение асинхронной записи. |
EndWrite(IAsyncResult) |
Заканчивает операцию асинхронной записи. (Рекомендуется использовать WriteAsync(Byte[], Int32, Int32).) (Унаследовано от Stream) |
Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
Finalize() |
Освобождает все ресурсы, занятые модулем NetworkStream. |
Flush() |
Удаляет данные из потока. Этот метод зарезервирован для использования в будущем. |
FlushAsync() |
Асинхронно очищает все буферы для этого потока и вызывает запись всех буферизованных данных в базовое устройство. (Унаследовано от Stream) |
FlushAsync(CancellationToken) |
Удаляет данные из потока в качестве асинхронной операции. |
FlushAsync(CancellationToken) |
Асинхронно очищает все буферы данного потока, вызывает запись буферизованных данных в базовое устройство и отслеживает запросы отмены. (Унаследовано от Stream) |
GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
GetLifetimeService() |
Устаревшие..
Извлекает объект обслуживания во время существования, который управляет политикой времени существования данного экземпляра. (Унаследовано от MarshalByRefObject) |
GetType() |
Возвращает объект Type для текущего экземпляра. (Унаследовано от Object) |
InitializeLifetimeService() |
Устаревшие..
Получает объект службы времени существования для управления политикой времени существования для этого экземпляра. (Унаследовано от MarshalByRefObject) |
MemberwiseClone() |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
MemberwiseClone(Boolean) |
Создает неполную копию текущего объекта MarshalByRefObject. (Унаследовано от MarshalByRefObject) |
ObjectInvariant() |
Устаревшие..
Обеспечивает поддержку для Contract. (Унаследовано от Stream) |
Read(Byte[], Int32, Int32) |
Считывает данные из NetworkStream и сохраняет их в массив байтов. |
Read(Span<Byte>) |
Считывает данные из NetworkStream и сохраняет их в диапазоне байтов в памяти. |
Read(Span<Byte>) |
При переопределении в производном классе считывает последовательность байтов из текущего потока и перемещает позицию в потоке на число считанных байтов. (Унаследовано от Stream) |
ReadAsync(Byte[], Int32, Int32) |
Асинхронно считывает последовательность байтов из текущего потока и перемещает позицию внутри потока на число считанных байтов. (Унаследовано от Stream) |
ReadAsync(Byte[], Int32, Int32, CancellationToken) |
Считывает данные из NetworkStream и сохраняет их заданном диапазоне массива байтов в качестве асинхронной операции. |
ReadAsync(Byte[], Int32, Int32, CancellationToken) |
Асинхронно считывает последовательность байтов из текущего потока, перемещает позицию в потоке на число считанных байтов и отслеживает запросы отмены. (Унаследовано от Stream) |
ReadAsync(Memory<Byte>, CancellationToken) |
Считывает данные из NetworkStream и сохраняет их в диапазоне памяти байтов в качестве асинхронной операции. |
ReadAsync(Memory<Byte>, CancellationToken) |
Асинхронно считывает последовательность байтов из текущего потока, перемещает позицию в потоке на число считанных байтов и отслеживает запросы отмены. (Унаследовано от Stream) |
ReadAtLeast(Span<Byte>, Int32, Boolean) |
Считывает по крайней мере минимальное количество байтов из текущего потока и перемещает позицию в потоке на число прочитанных байтов. (Унаследовано от Stream) |
ReadAtLeastAsync(Memory<Byte>, Int32, Boolean, CancellationToken) |
Асинхронно считывает по крайней мере минимальное количество байтов из текущего потока, перемещает позицию в потоке на число прочитанных байтов и отслеживает запросы отмены. (Унаследовано от Stream) |
ReadByte() |
Считывает байт из NetworkStream и перемещает позицию в потоке на один байт или возвращает –1, если достигнут конец потока. |
ReadByte() |
Считывает байт из потока и перемещает позицию в потоке на один байт или возвращает -1, если достигнут конец потока. (Унаследовано от Stream) |
ReadExactly(Byte[], Int32, Int32) |
Считывает |
ReadExactly(Span<Byte>) |
Считывает байты из текущего потока и перемещает позицию в потоке |
ReadExactlyAsync(Byte[], Int32, Int32, CancellationToken) |
Асинхронно считывает |
ReadExactlyAsync(Memory<Byte>, CancellationToken) |
Асинхронно считывает байты из текущего потока, перемещает позицию в потоке |
Seek(Int64, SeekOrigin) |
Устанавливает заданное значение для текущей позиции потока. Этот метод в настоящее время не поддерживается, и он всегда создает исключение NotSupportedException. |
SetLength(Int64) |
Задает длину потока. Этот метод всегда создает исключение NotSupportedException. |
ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
Write(Byte[], Int32, Int32) |
Записывает данные в NetworkStream из указанного диапазона массива байтов. |
Write(ReadOnlySpan<Byte>) |
Записывает данные в из NetworkStream диапазона байтов только для чтения. |
Write(ReadOnlySpan<Byte>) |
При переопределении в производном классе записывает последовательность байтов в текущий поток и перемещает текущую позицию в нем вперед на число записанных байтов. (Унаследовано от Stream) |
WriteAsync(Byte[], Int32, Int32) |
Асинхронно записывает последовательность байтов в текущий поток и перемещает текущую позицию внутри потока на число записанных байтов. (Унаследовано от Stream) |
WriteAsync(Byte[], Int32, Int32, CancellationToken) |
Записывает данные в NetworkStream из заданного диапазона массива байтов в качестве асинхронной операции. |
WriteAsync(Byte[], Int32, Int32, CancellationToken) |
Асинхронно записывает последовательность байтов в текущий поток, перемещает текущую позицию внутри потока на число записанных байтов и отслеживает запросы отмены. (Унаследовано от Stream) |
WriteAsync(ReadOnlyMemory<Byte>, CancellationToken) |
Записывает данные в NetworkStream из диапазона памяти байтов, доступного только для чтения, в качестве асинхронной операции. |
WriteAsync(ReadOnlyMemory<Byte>, CancellationToken) |
Асинхронно записывает последовательность байтов в текущий поток, перемещает текущую позицию внутри потока на число записанных байтов и отслеживает запросы отмены. (Унаследовано от Stream) |
WriteByte(Byte) |
Записывает байт в текущее положение в NetworkStream и перемещает позицию в потоке вперед на один байт. |
WriteByte(Byte) |
Записывает байт в текущее положение в потоке и перемещает позицию в потоке вперед на один байт. (Унаследовано от Stream) |
Явные реализации интерфейса
IDisposable.Dispose() |
Этот API поддерживает инфраструктуру продукта и не предназначен для использования непосредственно из программного кода. Освобождает все ресурсы, занятые модулем NetworkStream. |
Методы расширения
CopyToAsync(Stream, PipeWriter, CancellationToken) |
Асинхронно считывает байты из Stream и записывает их в указанный PipeWriter, используя токен отмены. |
ConfigureAwait(IAsyncDisposable, Boolean) |
Настраивает способ выполнения ожиданий для задач, возвращаемых из асинхронного высвобождаемого объекта. |
Применяется к
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по