NamedPipeClientStream Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет Stream вокруг именованного канала, который поддерживает синхронные и асинхронные операции чтения и записи.
public ref class NamedPipeClientStream sealed : System::IO::Pipes::PipeStream
public sealed class NamedPipeClientStream : System.IO.Pipes.PipeStream
type NamedPipeClientStream = class
inherit PipeStream
Public NotInheritable Class NamedPipeClientStream
Inherits PipeStream
- Наследование
- Наследование
Примеры
В следующем примере показано, как отправить строку из родительского процесса в дочерний процесс на том же компьютере с помощью именованных каналов. В этом примере создается объект NamedPipeServerStream в родительском процессе. Объект NamedPipeServerStream имеет значение PipeDirectionOut. Затем сервер ожидает, пока объект NamedPipeClientStream в дочернем процессе будет подключаться к нему. В этом примере оба процесса находятся на одном компьютере, а объект NamedPipeClientStream имеет PipeDirection значение In. Затем родительский процесс отправляет в дочерний процесс строку, предоставленную пользователем. Строка отображается в консоли.
Этот пример предназначен для клиентского процесса, который подключается к серверу. Полный пример кода, включая код для клиента и сервера канала, см. в разделе Практическое руководство. Использование именованных каналов для обмена данными между сетями.
using System;
using System.IO;
using System.IO.Pipes;
class PipeClient
{
static void Main(string[] args)
{
using (NamedPipeClientStream pipeClient =
new NamedPipeClientStream(".", "testpipe", PipeDirection.In))
{
// Connect to the pipe or wait until the pipe is available.
Console.Write("Attempting to connect to pipe...");
pipeClient.Connect();
Console.WriteLine("Connected to pipe.");
Console.WriteLine("There are currently {0} pipe server instances open.",
pipeClient.NumberOfServerInstances);
using (StreamReader sr = new StreamReader(pipeClient))
{
// Display the read text to the console
string temp;
while ((temp = sr.ReadLine()) != null)
{
Console.WriteLine("Received from server: {0}", temp);
}
}
}
Console.Write("Press Enter to continue...");
Console.ReadLine();
}
}
Imports System.IO
Imports System.IO.Pipes
Imports System.Security.Principal
Class PipeClient
Shared Sub Main(ByVal args As String())
Dim pipeClient As New NamedPipeClientStream("localhost", _
"testpipe", PipeDirection.In, PipeOptions.None)
' Connect to the pipe or wait until the pipe is available.
Console.WriteLine("Attempting to connect to the pipe...")
pipeClient.Connect()
Console.WriteLine("Connect to the pipe.")
Console.WriteLine("There are currently {0} pipe server instances open.", _
pipeClient.NumberOfServerInstances)
Dim sr As New StreamReader(pipeClient)
Dim temp As String
temp = sr.ReadLine()
While Not temp Is Nothing
Console.WriteLine("Received from server: {0}", temp)
temp = sr.ReadLine()
End While
Console.Write("Press Enter to continue...")
Console.ReadLine()
End Sub
End Class
Комментарии
Именованные каналы предоставляют односторонние или дуплексные каналы для обмена данными между сервером каналов и одним или несколькими клиентами каналов. Именованные каналы можно использовать для взаимодействия между процессами локально или по сети. Имя одного канала можно совместно использовать несколькими объектами NamedPipeClientStream.
Любой процесс может выступать в качестве именованного сервера канала или клиента или обоих.
Конструкторы
NamedPipeClientStream(PipeDirection, Boolean, Boolean, SafePipeHandle) |
Инициализирует новый экземпляр класса NamedPipeClientStream для указанного дескриптора канала с указанным направлением канала. |
NamedPipeClientStream(String) |
Инициализирует новый экземпляр класса NamedPipeClientStream с указанным именем канала. |
NamedPipeClientStream(String, String) |
Инициализирует новый экземпляр класса NamedPipeClientStream с указанными именами каналов и серверов. |
NamedPipeClientStream(String, String, PipeAccessRights, PipeOptions, TokenImpersonationLevel, HandleInheritability) |
Инициализирует новый экземпляр класса NamedPipeClientStream с указанными именами каналов и сервера, а также заданными параметрами канала, уровнем олицетворения безопасности и режимом наследования. |
NamedPipeClientStream(String, String, PipeDirection) |
Инициализирует новый экземпляр класса NamedPipeClientStream с указанными именами каналов и сервера и указанным направлением канала. |
NamedPipeClientStream(String, String, PipeDirection, PipeOptions) |
Инициализирует новый экземпляр класса NamedPipeClientStream с указанными именами каналов и сервера, а также указанными параметрами направления канала и канала. |
NamedPipeClientStream(String, String, PipeDirection, PipeOptions, TokenImpersonationLevel) |
Инициализирует новый экземпляр класса NamedPipeClientStream с указанными именами каналов и сервера, а также заданным направлением канала, параметрами канала и уровнем олицетворения безопасности. |
NamedPipeClientStream(String, String, PipeDirection, PipeOptions, TokenImpersonationLevel, HandleInheritability) |
Инициализирует новый экземпляр класса NamedPipeClientStream с указанными именами каналов и сервера, а также заданным направлением канала, параметрами канала, уровнем олицетворения безопасности и режимом наследования. |
Свойства
CanRead |
Возвращает значение, указывающее, поддерживает ли текущий поток операции чтения. (Унаследовано от PipeStream) |
CanSeek |
Возвращает значение, указывающее, поддерживает ли текущий поток операции поиска. (Унаследовано от PipeStream) |
CanTimeout |
Возвращает значение, определяющее, может ли текущий поток истекает время ожидания. (Унаследовано от Stream) |
CanWrite |
Возвращает значение, указывающее, поддерживает ли текущий поток операции записи. (Унаследовано от PipeStream) |
InBufferSize |
Возвращает размер в байтах входящего буфера для канала. (Унаследовано от PipeStream) |
IsAsync |
Возвращает значение, указывающее, был ли объект PipeStream открыт асинхронно или синхронно. (Унаследовано от PipeStream) |
IsConnected |
Возвращает или задает значение, указывающее, подключен ли объект PipeStream. (Унаследовано от PipeStream) |
IsHandleExposed |
Возвращает значение, указывающее, предоставляется ли дескриптор объекту PipeStream. (Унаследовано от PipeStream) |
IsMessageComplete |
Возвращает значение, указывающее, есть ли в сообщении больше данных, возвращаемых из последней операции чтения. (Унаследовано от PipeStream) |
Length |
Возвращает длину потока в байтах. (Унаследовано от PipeStream) |
NumberOfServerInstances |
Возвращает количество экземпляров сервера, которые используют одно и то же имя канала. |
OutBufferSize |
Возвращает размер в байтах исходящего буфера для канала. (Унаследовано от PipeStream) |
Position |
Возвращает или задает текущее положение текущего потока. (Унаследовано от PipeStream) |
ReadMode |
Возвращает или задает режим чтения для объекта PipeStream. (Унаследовано от PipeStream) |
ReadTimeout |
Возвращает или задает значение в миллисекундах, которое определяет, сколько времени поток попытается прочитать до истечения времени ожидания. (Унаследовано от Stream) |
SafePipeHandle |
Возвращает безопасный дескриптор для локального конца канала, который инкапсулирует текущий объект PipeStream. (Унаследовано от PipeStream) |
TransmissionMode |
Возвращает режим передачи канала, поддерживаемый текущим каналом. (Унаследовано от PipeStream) |
WriteTimeout |
Возвращает или задает значение в миллисекундах, определяющее, сколько времени поток попытается записать до истечения времени ожидания. (Унаследовано от Stream) |
Методы
BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) |
Начинает асинхронную операцию чтения. (Унаследовано от PipeStream) |
BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) |
Начинает асинхронную операцию записи. (Унаследовано от PipeStream) |
CheckPipePropertyOperations() |
Проверяет, находится ли канал в правильном состоянии для получения или задания свойств. (Унаследовано от PipeStream) |
CheckReadOperations() |
Проверяет, находится ли канал в подключенном состоянии для операций чтения. (Унаследовано от PipeStream) |
CheckWriteOperations() |
Проверяет, находится ли канал в подключенном состоянии для операций записи. (Унаследовано от PipeStream) |
Close() |
Закрывает текущий поток и освобождает все ресурсы (например, сокеты и дескрипторы файлов), связанные с текущим потоком. Вместо вызова этого метода убедитесь, что поток правильно удален. (Унаследовано от Stream) |
Connect() |
Подключается к серверу ожидания с бесконечным значением времени ожидания. |
Connect(Int32) |
Подключается к серверу ожидания в течение указанного периода ожидания. |
Connect(TimeSpan) |
Подключается к серверу ожидания в течение указанного периода ожидания. |
ConnectAsync() |
Асинхронно подключается к серверу ожидания с бесконечным периодом ожидания. |
ConnectAsync(CancellationToken) |
Асинхронно подключается к серверу ожидания и отслеживает запросы на отмену. |
ConnectAsync(Int32) |
Асинхронно подключается к серверу ожидания в течение указанного периода ожидания. |
ConnectAsync(Int32, CancellationToken) |
Асинхронно подключается к серверу ожидания в течение указанного периода ожидания и отслеживает запросы на отмену. |
ConnectAsync(TimeSpan, CancellationToken) |
Асинхронно подключается к серверу ожидания в течение указанного периода ожидания и отслеживает запросы на отмену. |
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) |
Освобождает неуправляемые ресурсы, используемые классом PipeStream, и при необходимости освобождает управляемые ресурсы. (Унаследовано от PipeStream) |
DisposeAsync() |
Асинхронно освобождает неуправляемые ресурсы, используемые Stream. (Унаследовано от Stream) |
EndRead(IAsyncResult) |
Завершает ожидающий асинхронный запрос на чтение. (Унаследовано от PipeStream) |
EndWrite(IAsyncResult) |
Завершает ожидающий асинхронный запрос на запись. (Унаследовано от PipeStream) |
Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
Finalize() |
Освобождает неуправляемые ресурсы и выполняет другие операции очистки перед восстановлением экземпляра NamedPipeClientStream сборкой мусора. |
Flush() |
Очищает буфер для текущего потока и приводит к записи буферных данных на базовое устройство. (Унаследовано от PipeStream) |
FlushAsync() |
Асинхронно очищает все буферы для этого потока и приводит к записи всех буферных данных на базовое устройство. (Унаследовано от Stream) |
FlushAsync(CancellationToken) |
Асинхронно очищает буфер для текущего потока и приводит к записи буферных данных на базовое устройство. (Унаследовано от PipeStream) |
GetAccessControl() |
Возвращает объект PipeSecurity, который инкапсулирует записи списка управления доступом (ACL) для канала, описанного текущим объектом PipeStream. (Унаследовано от PipeStream) |
GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
GetLifetimeService() |
Устаревшие..
Извлекает текущий объект службы времени существования, который управляет политикой времени существования для этого экземпляра. (Унаследовано от MarshalByRefObject) |
GetType() |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
InitializeHandle(SafePipeHandle, Boolean, Boolean) |
Инициализирует объект PipeStream из указанного объекта SafePipeHandle. (Унаследовано от PipeStream) |
InitializeLifetimeService() |
Устаревшие..
Получает объект службы времени существования для управления политикой времени существования для этого экземпляра. (Унаследовано от MarshalByRefObject) |
MemberwiseClone() |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
MemberwiseClone(Boolean) |
Создает неглубокую копию текущего объекта MarshalByRefObject. (Унаследовано от MarshalByRefObject) |
ObjectInvariant() |
Устаревшие..
Предоставляет поддержку Contract. (Унаследовано от Stream) |
Read(Byte[], Int32, Int32) |
Считывает блок байтов из потока и записывает данные в указанный буфер, начиная с указанной позиции для указанной длины. (Унаследовано от PipeStream) |
Read(Span<Byte>) |
Считывает последовательность байтов из текущего потока, записывает их в массив байтов и перемещает позицию в потоке по количеству байтов, считываемых. (Унаследовано от PipeStream) |
ReadAsync(Byte[], Int32, Int32) |
Асинхронно считывает последовательность байтов из текущего потока и перемещает позицию в потоке по числу байтов. (Унаследовано от Stream) |
ReadAsync(Byte[], Int32, Int32, CancellationToken) |
Асинхронно считывает последовательность байтов из текущего потока в массив байтов, начиная с указанного числа байтов, перемещает позицию в потоке по числу операций чтения байтов и отслеживает запросы на отмену. (Унаследовано от PipeStream) |
ReadAsync(Memory<Byte>, CancellationToken) |
Асинхронно считывает последовательность байтов из текущего потока, записывает их в диапазон памяти байтов, перемещает позицию в потоке по количеству байтов, считываемых и отслеживает запросы на отмену. (Унаследовано от PipeStream) |
ReadAtLeast(Span<Byte>, Int32, Boolean) |
Считывает по крайней мере минимальное количество байтов из текущего потока и перемещает положение в потоке по количеству байтов, считываемых. (Унаследовано от Stream) |
ReadAtLeastAsync(Memory<Byte>, Int32, Boolean, CancellationToken) |
Асинхронно считывает по крайней мере минимальное количество байтов из текущего потока, перемещает положение в потоке по количеству операций чтения байтов и отслеживает запросы на отмену. (Унаследовано от Stream) |
ReadByte() |
Считывает байт из канала. (Унаследовано от PipeStream) |
ReadExactly(Byte[], Int32, Int32) |
Считывает |
ReadExactly(Span<Byte>) |
Считывает байты из текущего потока и перемещает позицию в потоке до заполнения |
ReadExactlyAsync(Byte[], Int32, Int32, CancellationToken) |
Асинхронно считывает |
ReadExactlyAsync(Memory<Byte>, CancellationToken) |
Асинхронно считывает байты из текущего потока, перемещает положение в потоке до заполнения |
Seek(Int64, SeekOrigin) |
Задает текущее положение текущего потока указанным значением. (Унаследовано от PipeStream) |
SetAccessControl(PipeSecurity) |
Применяет записи списка управления доступом (ACL), указанные объектом PipeSecurity, к каналу, указанному текущим объектом PipeStream. (Унаследовано от PipeStream) |
SetLength(Int64) |
Задает длину текущего потока заданному значению. (Унаследовано от PipeStream) |
ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
WaitForPipeDrain() |
Ожидает, пока другой конец канала будет считывать все отправленные байты. (Унаследовано от PipeStream) |
Write(Byte[], Int32, Int32) |
Записывает блок байтов в текущий поток с помощью данных из буфера. (Унаследовано от PipeStream) |
Write(ReadOnlySpan<Byte>) |
Записывает последовательность байтов в текущий поток и перемещает текущую позицию в этом потоке по количеству записанных байтов. (Унаследовано от PipeStream) |
WriteAsync(Byte[], Int32, Int32) |
Асинхронно записывает последовательность байтов в текущий поток и перемещает текущую позицию в этом потоке по количеству записанных байтов. (Унаследовано от Stream) |
WriteAsync(Byte[], Int32, Int32, CancellationToken) |
Асинхронно записывает указанное число байтов из массива байтов, начиная с указанной позиции, перемещает текущую позицию в этом потоке по количеству записанных байтов и отслеживает запросы на отмену. (Унаследовано от PipeStream) |
WriteAsync(ReadOnlyMemory<Byte>, CancellationToken) |
Асинхронно записывает последовательность байтов в текущий поток, перемещает текущую позицию в этом потоке по количеству записанных байтов и отслеживает запросы на отмену. (Унаследовано от PipeStream) |
WriteByte(Byte) |
Записывает байт в текущий поток. (Унаследовано от PipeStream) |
Методы расширения
CopyToAsync(Stream, PipeWriter, CancellationToken) |
Асинхронно считывает байты из Stream и записывает их в указанный PipeWriterс помощью маркера отмены. |
GetAccessControl(PipeStream) |
Возвращает сведения о безопасности потока канала. |
SetAccessControl(PipeStream, PipeSecurity) |
Изменяет атрибуты безопасности существующего потока канала. |
ConfigureAwait(IAsyncDisposable, Boolean) |
Настраивает способ ожидания задач, возвращаемых из асинхронного удаления. |