NetworkStream Класс

Определение

Обеспечивает базовый поток данных для доступа к сети.Provides the underlying stream of data for network access.

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
Наследование

Примеры

В следующем примере кода показано, как создать NetworkStream из подключенной StreamSocket и выполнить базовую синхронную блокировку ввода-вывода.The following code example demonstrates how to create a NetworkStream from a connected StreamSocket and perform basic synchronous blocking I/O.

// Examples for constructors that do not specify file permission.
// Create the NetworkStream for communicating with the remote host.
NetworkStream^ myNetworkStream;

if ( networkStreamOwnsSocket )
{
   myNetworkStream = gcnew NetworkStream( mySocket,true );
}
else
{
   myNetworkStream = gcnew NetworkStream( mySocket );
}
// Examples for constructors that do not specify file permission.

// Create the NetworkStream for communicating with the remote host.
NetworkStream myNetworkStream;

if (networkStreamOwnsSocket){
     myNetworkStream = new NetworkStream(mySocket, true);          
}
else{
     myNetworkStream = new NetworkStream(mySocket);     
}
' Examples for constructors that do not specify file permission.
' Create the NetworkStream for communicating with the remote host.
Dim myNetworkStream As NetworkStream

If networkStreamOwnsSocket Then
   myNetworkStream = New NetworkStream(mySocket, True)
Else
   myNetworkStream = New NetworkStream(mySocket)
End If

Комментарии

Класс NetworkStream предоставляет методы для отправки и получения данных через сокеты Stream в блокирующем режиме.The NetworkStream class provides methods for sending and receiving data over Stream sockets in blocking mode. Дополнительные сведения о блокировании и неблокировке Sockets см. в разделе Использование асинхронного сокета клиента.For more information about blocking versus nonblocking Sockets, see Using an Asynchronous Client Socket. Класс NetworkStream можно использовать как для синхронной, так и для асинхронной пересылки данных.You can use the NetworkStream class for both synchronous and asynchronous data transfer. Дополнительные сведения о синхронной и асинхронной связи см. в разделе сокеты.For more information about synchronous and asynchronous communication, see Sockets.

Чтобы создать NetworkStream, необходимо указать подключенный Socket.To create a NetworkStream, you must provide a connected Socket. Кроме того, можно указать, какое FileAccess разрешение NetworkStream на предоставленный Socket.You can also specify what FileAccess permission the NetworkStream has over the provided Socket. По умолчанию закрытие NetworkStream не приводит к закрытию указанного Socket.By default, closing the NetworkStream does not close the provided Socket. Чтобы NetworkStream иметь разрешение на закрытие предоставленной Socket, необходимо указать true для значения параметра ownsSocket.If you want the NetworkStream to have permission to close the provided Socket, you must specify true for the value of the ownsSocket parameter.

Используйте методы Write и Read для простого синхронного ввода-вывода одного потока.Use the Write and Read methods for simple single thread synchronous blocking I/O. Если вы хотите обработать операции ввода-вывода с помощью отдельных потоков, рассмотрите возможность использования методов BeginWrite и EndWrite или методов BeginRead и EndRead для связи.If you want to process your I/O using separate threads, consider using the BeginWrite and EndWrite methods, or the BeginRead and EndRead methods for communication.

NetworkStream не поддерживает произвольный доступ к потоку сетевых данных.The NetworkStream does not support random access to the network data stream. Значение свойства CanSeek, которое указывает, поддерживает ли поток поиск, всегда false; чтение свойства Position, чтение свойства Length или вызов метода Seek приведет к созданию NotSupportedException.The value of the CanSeek property, which indicates whether the stream supports seeking, is always false; reading the Position property, reading the Length property, or calling the Seek method will throw a NotSupportedException.

Операции чтения и записи могут выполняться одновременно на экземпляре класса NetworkStream без необходимости синхронизации.Read and write operations can be performed simultaneously on an instance of the NetworkStream class without the need for synchronization. При условии, что для операций записи и один уникальный поток для операций чтения существует один уникальный поток, между потоками чтения и записи не будет перекрестных помех, а синхронизация не потребуется.As long as there is one unique thread for the write operations and one unique thread for the read operations, there will be no cross-interference between read and write threads and no synchronization is required.

Конструкторы

NetworkStream(Socket)

Создает новый экземпляр класса NetworkStream для указанного объекта Socket.Creates a new instance of the NetworkStream class for the specified Socket.

NetworkStream(Socket, Boolean)

Инициализирует новый экземпляр класса NetworkStream для указанного объекта Socket с заданным правом на владение Socket.Initializes a new instance of the NetworkStream class for the specified Socket with the specified Socket ownership.

NetworkStream(Socket, FileAccess)

Создает новый экземпляр класса NetworkStream для указанного объекта Socket с заданными правами на доступ.Creates a new instance of the NetworkStream class for the specified Socket with the specified access rights.

NetworkStream(Socket, FileAccess, Boolean)

Создает новый экземпляр класса NetworkStream для указанного объекта Socket с заданными правами доступа и указанными правами владения объектом Socket.Creates a new instance of the NetworkStream class for the specified Socket with the specified access rights and the specified Socket ownership.

Свойства

CanRead

Возвращает значение, указывающее, поддерживает ли объект NetworkStream чтение.Gets a value that indicates whether the NetworkStream supports reading.

CanSeek

Получает значение, указывающее, поддерживает ли поток поиск.Gets a value that indicates whether the stream supports seeking. Это свойство в настоящее время не поддерживается и всегда возвращает значение false.This property is not currently supported.This property always returns false.

CanTimeout

Указывает, применимы ли для объекта NetworkStream свойства тайм-аута.Indicates whether timeout properties are usable for NetworkStream.

CanWrite

Получает значение, указывающее, поддерживает ли объект NetworkStream запись.Gets a value that indicates whether the NetworkStream supports writing.

DataAvailable

Возвращает значение, указывающее, имеются ли в объекте NetworkStream данные, доступные для чтения.Gets a value that indicates whether data is available on the NetworkStream to be read.

Length

Получает длину данных, доступных в потоке.Gets the length of the data available on the stream. Это свойство в настоящее время не поддерживается, и обращение к нему всегда создает исключение NotSupportedException.This property is not currently supported and always throws a NotSupportedException.

Position

Возвращает или задает текущую позицию в потоке.Gets or sets the current position in the stream. Это свойство в настоящее время не поддерживается, и обращение к нему всегда создает исключение NotSupportedException.This property is not currently supported and always throws a NotSupportedException.

Readable

Получает или устанавливает значение, указывающее, может ли выполняться чтение из объекта NetworkStream.Gets or sets a value that indicates whether the NetworkStream can be read.

ReadTimeout

Возвращает или задает время, в течение которого операция чтения блокирует ожидание данных.Gets or sets the amount of time that a read operation blocks waiting for data.

Socket

Возвращает основной объект Socket.Gets the underlying Socket.

Writeable

Получает значение, указывающее, предусмотрена ли запись в объект NetworkStream.Gets a value that indicates whether the NetworkStream is writable.

WriteTimeout

Возвращает или задает время, в течение которого операция записи блокирует ожидание данных.Gets or sets the amount of time that a write operation blocks waiting for data.

Методы

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

Начинает асинхронное чтение из объекта NetworkStream.Begins an asynchronous read from the NetworkStream.

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

Начинает асинхронную запись в поток.Begins an asynchronous write to a stream.

Close()

Закрывает объект NetworkStream.Closes the NetworkStream.

Close(Int32)

Закрывает объект NetworkStream после ожидания в течение указанного времени, позволяя выполнить отправку данных.Closes the NetworkStream after waiting the specified time to allow data to be sent.

CopyTo(Stream)

Считывает байты из текущего потока и записывает их в другой поток.Reads the bytes from the current stream and writes them to another stream.

(Унаследовано от Stream)
CopyTo(Stream, Int32)

Считывает байты из текущего потока и записывает их в другой поток, используя указанный размер буфера.Reads the bytes from the current stream and writes them to another stream, using a specified buffer size.

(Унаследовано от Stream)
CopyToAsync(Stream)

Асинхронно считывает байты из текущего потока и записывает их в другой поток.Asynchronously reads the bytes from the current stream and writes them to another stream.

(Унаследовано от Stream)
CopyToAsync(Stream, CancellationToken)

Асинхронно считывает байты из текущего потока и записывает их в другой поток, используя указанный токен отмены.Asynchronously reads the bytes from the current stream and writes them to another stream, using a specified cancellation token.

(Унаследовано от Stream)
CopyToAsync(Stream, Int32)

Асинхронно считывает байты из текущего потока и записывает их в другой поток, используя указанный размер буфера.Asynchronously reads the bytes from the current stream and writes them to another stream, using a specified buffer size.

(Унаследовано от Stream)
CopyToAsync(Stream, Int32, CancellationToken)

Асинхронно считывает байты из текущего потока и записывает их в другой поток, используя указанный размер буфера и токен отмены.Asynchronously reads the bytes from the current stream and writes them to another stream, using a specified buffer size and cancellation token.

(Унаследовано от Stream)
CreateObjRef(Type)

Создает объект, который содержит всю необходимую информацию для создания прокси-сервера, используемого для взаимодействия с удаленным объектом.Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.

(Унаследовано от MarshalByRefObject)
CreateWaitHandle()

Размещает объект WaitHandle.Allocates a WaitHandle object.

(Унаследовано от Stream)
Dispose()

Освобождает все ресурсы, занятые модулем Stream.Releases all resources used by the Stream.

(Унаследовано от Stream)
Dispose(Boolean)

Освобождает неуправляемые ресурсы, используемые NetworkStream, и дополнительно освобождает управляемые ресурсы.Releases the unmanaged resources used by the NetworkStream and optionally releases the managed resources.

DisposeAsync()

Асинхронно освобождает неуправляемые ресурсы, используемые классом Stream.Asynchronously releases the unmanaged resources used by the Stream.

(Унаследовано от Stream)
EndRead(IAsyncResult)

Обрабатывает завершение асинхронного чтения.Handles the end of an asynchronous read.

EndWrite(IAsyncResult)

Обрабатывает завершение асинхронной записи.Handles the end of an asynchronous write.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.Determines whether the specified object is equal to the current object.

(Унаследовано от Object)
Finalize()

Освобождает все ресурсы, занятые NetworkStream.Releases all resources used by the NetworkStream.

Flush()

Удаляет данные из потока.Flushes data from the stream. Этот метод зарезервирован для использования в будущем.This method is reserved for future use.

FlushAsync()

Асинхронно очищает все буферы для этого потока и вызывает запись всех буферизованных данных в базовое устройство.Asynchronously clears all buffers for this stream and causes any buffered data to be written to the underlying device.

(Унаследовано от Stream)
FlushAsync(CancellationToken)

Удаляет данные из потока в качестве асинхронной операции.Flushes data from the stream as an asynchronous operation.

GetHashCode()

Служит в качестве хэш-функции по умолчанию.Serves as the default hash function.

(Унаследовано от Object)
GetLifetimeService()

Извлекает объект обслуживания во время существования, который управляет политикой времени существования данного экземпляра.Retrieves the current lifetime service object that controls the lifetime policy for this instance.

(Унаследовано от MarshalByRefObject)
GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Унаследовано от Object)
InitializeLifetimeService()

Получает объект службы времени существования для управления политикой времени существования для этого экземпляра.Obtains a lifetime service object to control the lifetime policy for this instance.

(Унаследовано от MarshalByRefObject)
MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Унаследовано от Object)
MemberwiseClone(Boolean)

Создает неполную копию текущего объекта MarshalByRefObject.Creates a shallow copy of the current MarshalByRefObject object.

(Унаследовано от MarshalByRefObject)
ObjectInvariant()

Обеспечивает поддержку для Contract.Provides support for a Contract.

(Унаследовано от Stream)
Read(Byte[], Int32, Int32)

Считывает данные из NetworkStream и сохраняет их в массив байтов.Reads data from the NetworkStream and stores it to a byte array.

Read(Span<Byte>)

Считывает данные из NetworkStream и сохраняет их в диапазоне байтов в памяти.Reads data from the NetworkStream and stores it to a span of bytes in memory.

ReadAsync(Byte[], Int32, Int32)

Асинхронно считывает последовательность байтов из текущего потока и перемещает позицию внутри потока на число считанных байтов.Asynchronously reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read.

(Унаследовано от Stream)
ReadAsync(Byte[], Int32, Int32, CancellationToken)

Считывает данные из NetworkStream и сохраняет их заданном диапазоне массива байтов в качестве асинхронной операции.Reads data from the NetworkStream and stores it to a specified range of a byte array as an asynchronous operation.

ReadAsync(Memory<Byte>, CancellationToken)

Считывает данные из NetworkStream и сохраняет их в диапазоне памяти байтов в качестве асинхронной операции.Reads data from the NetworkStream and stores it in a byte memory range as an asynchronous operation.

ReadByte()

Считывает байт из NetworkStream и перемещает позицию в потоке на один байт или возвращает –1, если достигнут конец потока.Reads a byte from the NetworkStream and advances the position within the stream by one byte, or returns -1 if at the end of the stream.

Seek(Int64, SeekOrigin)

Устанавливает заданное значение для текущей позиции потока.Sets the current position of the stream to the given value. Этот метод в настоящее время не поддерживается, и он всегда создает исключение NotSupportedException.This method is not currently supported and always throws a NotSupportedException.

SetLength(Int64)

Задает длину потока.Sets the length of the stream. Этот метод всегда создает исключение NotSupportedException.This method always throws a NotSupportedException.

ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

(Унаследовано от Object)
Write(Byte[], Int32, Int32)

Записывает данные в NetworkStream из указанного диапазона массива байтов.Writes data to the NetworkStream from a specified range of a byte array.

Write(ReadOnlySpan<Byte>)

Записывает данные в NetworkStream объект из диапазона байтов, доступного только для чтения.Writes data to the NetworkStream from a read-only byte span.

WriteAsync(Byte[], Int32, Int32)

Асинхронно записывает последовательность байтов в текущий поток и перемещает текущую позицию внутри потока на число записанных байтов.Asynchronously writes a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written.

(Унаследовано от Stream)
WriteAsync(Byte[], Int32, Int32, CancellationToken)

Записывает данные в NetworkStream из заданного диапазона массива байтов в качестве асинхронной операции.Writes data to the NetworkStream from the specified range of a byte array as an asynchronous operation.

WriteAsync(ReadOnlyMemory<Byte>, CancellationToken)

Записывает данные в NetworkStream из диапазона памяти байтов, доступного только для чтения, в качестве асинхронной операции.Writes data to the NetworkStream from a read-only memory byte memory range as an asynchronous operation.

WriteByte(Byte)

Записывает байт в текущее положение в NetworkStream и перемещает позицию в потоке вперед на один байт.Writes a byte to the current position in the NetworkStream and advances the position within the stream by one byte.

Явные реализации интерфейса

IDisposable.Dispose()

Освобождает все ресурсы, занятые NetworkStream.Releases all resources used by the NetworkStream.

Применяется к

Дополнительно