NamedPipeServerStream Класс
В этой статье
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет Stream вокруг именованного канала, поддерживая синхронные и асинхронные операции чтения и записи.
public ref class NamedPipeServerStream sealed : System::IO::Pipes::PipeStream
public sealed class NamedPipeServerStream : System.IO.Pipes.PipeStream
type NamedPipeServerStream = class
inherit PipeStream
Public NotInheritable Class NamedPipeServerStream
Inherits PipeStream
- Наследование
- Наследование
В следующем примере показано, как отправить строку из родительского процесса в дочерний процесс на том же компьютере с помощью именованных каналов. В этом примере создается объект NamedPipeServerStream в родительском процессе с PipeDirection значением Out. Затем сервер ожидает, пока объект NamedPipeClientStream в дочернем процессе будет подключаться к нему. В этом примере оба процесса находятся на одном компьютере, а объект NamedPipeClientStream имеет PipeDirection значение In. Затем родительский процесс отправляет в дочерний процесс строку, предоставленную пользователем. Строка отображается в консоли.
В этом примере используется серверный процесс, который использует класс NamedPipeServerStream. Полный пример кода, включая код для клиента и сервера канала, см. в разделе Практическое руководство. Использование именованных каналов для обмена данными между сетями.
using System;
using System.IO;
using System.IO.Pipes;
class PipeServer
{
static void Main()
{
using (NamedPipeServerStream pipeServer =
new NamedPipeServerStream("testpipe", PipeDirection.Out))
{
Console.WriteLine("NamedPipeServerStream object created.");
// Wait for a client to connect
Console.Write("Waiting for client connection...");
pipeServer.WaitForConnection();
Console.WriteLine("Client connected.");
try
{
// Read user input and send that to the client process.
using (StreamWriter sw = new StreamWriter(pipeServer))
{
sw.AutoFlush = true;
Console.Write("Enter text: ");
sw.WriteLine(Console.ReadLine());
}
}
// Catch the IOException that is raised if the pipe is broken
// or disconnected.
catch (IOException e)
{
Console.WriteLine("ERROR: {0}", e.Message);
}
}
}
}
Imports System.IO
Imports System.IO.Pipes
Class PipeServer
Shared Sub Main()
Dim pipeServer As New NamedPipeServerStream("testpipe", PipeDirection.Out)
Console.WriteLine("NamedPipeServerStream object created.")
' Wait for a client to connect
Console.Write("Waiting for a client connection...")
pipeServer.WaitForConnection()
Console.WriteLine("Client connected.")
Try
'Read user input and send that to the client process.
Dim sw As New StreamWriter(pipeServer)
sw.AutoFlush = True
Console.Write("Enter Text: ")
sw.WriteLine(Console.ReadLine())
Catch ex As IOException
' Catch the IOException that is raised if the pipe is broken
' or disconnected
Console.WriteLine("ERROR: {0}", ex.Message)
End Try
End Sub
End Class
Именованные каналы предоставляют односторонние или дуплексные каналы для обмена данными между сервером каналов и одним или несколькими клиентами каналов. Именованные каналы можно использовать для взаимодействия между процессами локально или по сети. Имя одного канала можно совместно использовать несколькими объектами NamedPipeClientStream.
Любой процесс может выступать в качестве именованного сервера канала или клиента или обоих.
Named |
Инициализирует новый экземпляр класса NamedPipeServerStream из указанного дескриптора канала. |
Named |
Инициализирует новый экземпляр класса NamedPipeServerStream с указанным именем канала. |
Named |
Инициализирует новый экземпляр класса NamedPipeServerStream с указанным именем канала и направлением канала. |
Named |
Инициализирует новый экземпляр класса NamedPipeServerStream с указанным именем канала, направлением канала и максимальным количеством экземпляров сервера. |
Named |
Инициализирует новый экземпляр класса NamedPipeServerStream с указанным именем канала, направлением канала, максимальным количеством экземпляров сервера и режимом передачи. |
Named |
Инициализирует новый экземпляр класса NamedPipeServerStream с указанным именем канала, направлением канала, максимальным числом экземпляров сервера, режимом передачи и параметрами канала. |
Named |
Инициализирует новый экземпляр класса NamedPipeServerStream с указанным именем канала, направлением канала, максимальным числом экземпляров сервера, режимом передачи, параметрами канала и рекомендуемыми размерами буфера и вне него. |
Named |
Инициализирует новый экземпляр класса NamedPipeServerStream с указанным именем канала, направлением канала, максимальным количеством экземпляров сервера, режимом передачи, параметрами канала, рекомендуемыми размерами буферов и безопасностью канала. |
Named |
Инициализирует новый экземпляр класса NamedPipeServerStream с указанным именем канала, направлением канала, максимальным количеством экземпляров сервера, режимом передачи, параметрами канала, рекомендуемыми размерами буферов, безопасностью канала и режимом наследования. |
Named |
Инициализирует новый экземпляр класса NamedPipeServerStream с указанным именем канала, направлением канала, максимальным количеством экземпляров сервера, режимом передачи, параметрами канала, рекомендуемыми размерами буферов, безопасностью канала, режимом наследования и правами доступа к каналу. |
Max |
Представляет максимальное количество экземпляров сервера, разрешенных системными ресурсами. |
Can |
Возвращает значение, указывающее, поддерживает ли текущий поток операции чтения. (Унаследовано от PipeStream) |
Can |
Возвращает значение, указывающее, поддерживает ли текущий поток операции поиска. (Унаследовано от PipeStream) |
Can |
Возвращает значение, определяющее, может ли текущий поток истекает время ожидания. (Унаследовано от Stream) |
Can |
Возвращает значение, указывающее, поддерживает ли текущий поток операции записи. (Унаследовано от PipeStream) |
In |
Возвращает размер в байтах входящего буфера для канала. (Унаследовано от PipeStream) |
Is |
Возвращает значение, указывающее, был ли объект PipeStream открыт асинхронно или синхронно. (Унаследовано от PipeStream) |
Is |
Возвращает или задает значение, указывающее, подключен ли объект PipeStream. (Унаследовано от PipeStream) |
Is |
Возвращает значение, указывающее, предоставляется ли дескриптор объекту PipeStream. (Унаследовано от PipeStream) |
Is |
Возвращает значение, указывающее, есть ли в сообщении больше данных, возвращаемых из последней операции чтения. (Унаследовано от PipeStream) |
Length |
Возвращает длину потока в байтах. (Унаследовано от PipeStream) |
Out |
Возвращает размер в байтах исходящего буфера для канала. (Унаследовано от PipeStream) |
Position |
Возвращает или задает текущее положение текущего потока. (Унаследовано от PipeStream) |
Read |
Возвращает или задает режим чтения для объекта PipeStream. (Унаследовано от PipeStream) |
Read |
Возвращает или задает значение в миллисекундах, которое определяет, сколько времени поток попытается прочитать до истечения времени ожидания. (Унаследовано от Stream) |
Safe |
Возвращает безопасный дескриптор для локального конца канала, который инкапсулирует текущий объект PipeStream. (Унаследовано от PipeStream) |
Transmission |
Возвращает режим передачи канала, поддерживаемый текущим каналом. (Унаследовано от PipeStream) |
Write |
Возвращает или задает значение в миллисекундах, определяющее, сколько времени поток попытается записать до истечения времени ожидания. (Унаследовано от Stream) |
Begin |
Начинает асинхронную операцию чтения. (Унаследовано от PipeStream) |
Begin |
Начинает асинхронную операцию ожидания подключения клиента. |
Begin |
Начинает асинхронную операцию записи. (Унаследовано от PipeStream) |
Check |
Проверяет, находится ли канал в правильном состоянии для получения или задания свойств. (Унаследовано от PipeStream) |
Check |
Проверяет, находится ли канал в подключенном состоянии для операций чтения. (Унаследовано от PipeStream) |
Check |
Проверяет, находится ли канал в подключенном состоянии для операций записи. (Унаследовано от PipeStream) |
Close() |
Закрывает текущий поток и освобождает все ресурсы (например, сокеты и дескрипторы файлов), связанные с текущим потоком. Вместо вызова этого метода убедитесь, что поток правильно удален. (Унаследовано от Stream) |
Copy |
Считывает байты из текущего потока и записывает их в другой поток. Обе позиции потоков расширены по количеству скопированных байтов. (Унаследовано от Stream) |
Copy |
Считывает байты из текущего потока и записывает их в другой поток, используя указанный размер буфера. Обе позиции потоков расширены по количеству скопированных байтов. (Унаследовано от Stream) |
Copy |
Асинхронно считывает байты из текущего потока и записывает их в другой поток. Обе позиции потоков расширены по количеству скопированных байтов. (Унаследовано от Stream) |
Copy |
Асинхронно считывает байты из текущего потока и записывает их в другой поток с помощью указанного маркера отмены. Обе позиции потоков расширены по количеству скопированных байтов. (Унаследовано от Stream) |
Copy |
Асинхронно считывает байты из текущего потока и записывает их в другой поток, используя указанный размер буфера. Обе позиции потоков расширены по количеству скопированных байтов. (Унаследовано от Stream) |
Copy |
Асинхронно считывает байты из текущего потока и записывает их в другой поток, используя указанный размер буфера и маркер отмены. Обе позиции потоков расширены по количеству скопированных байтов. (Унаследовано от Stream) |
Create |
Создает объект, содержащий все соответствующие сведения, необходимые для создания прокси-сервера, используемого для взаимодействия с удаленным объектом. (Унаследовано от MarshalByRefObject) |
Create |
Устаревшие..
Устаревшие..
Устаревшие..
Выделяет объект WaitHandle. (Унаследовано от Stream) |
Disconnect() |
Отключает текущее подключение. |
Dispose() |
Освобождает все ресурсы, используемые Stream. (Унаследовано от Stream) |
Dispose(Boolean) |
Освобождает неуправляемые ресурсы, используемые классом PipeStream, и при необходимости освобождает управляемые ресурсы. (Унаследовано от PipeStream) |
Dispose |
Асинхронно освобождает неуправляемые ресурсы, используемые Stream. (Унаследовано от Stream) |
End |
Завершает ожидающий асинхронный запрос на чтение. (Унаследовано от PipeStream) |
End |
Завершает асинхронную операцию ожидания подключения клиента. |
End |
Завершает ожидающий асинхронный запрос на запись. (Унаследовано от PipeStream) |
Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
Finalize() |
Освобождает неуправляемые ресурсы и выполняет другие операции очистки перед восстановлением экземпляра NamedPipeServerStream сборкой мусора. |
Flush() |
Очищает буфер для текущего потока и приводит к записи буферных данных на базовое устройство. (Унаследовано от PipeStream) |
Flush |
Асинхронно очищает все буферы для этого потока и приводит к записи всех буферных данных на базовое устройство. (Унаследовано от Stream) |
Flush |
Асинхронно очищает буфер для текущего потока и приводит к записи буферных данных на базовое устройство. (Унаследовано от PipeStream) |
Get |
Возвращает объект PipeSecurity, который инкапсулирует записи списка управления доступом (ACL) для канала, описанного текущим объектом PipeStream. (Унаследовано от PipeStream) |
Get |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
Get |
Возвращает имя пользователя клиента в другом конце канала. |
Get |
Устаревшие..
Извлекает текущий объект службы времени существования, который управляет политикой времени существования для этого экземпляра. (Унаследовано от MarshalByRefObject) |
Get |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
Initialize |
Инициализирует объект PipeStream из указанного объекта SafePipeHandle. (Унаследовано от PipeStream) |
Initialize |
Устаревшие..
Получает объект службы времени существования для управления политикой времени существования для этого экземпляра. (Унаследовано от MarshalByRefObject) |
Memberwise |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
Memberwise |
Создает неглубокую копию текущего объекта MarshalByRefObject. (Унаследовано от MarshalByRefObject) |
Object |
Устаревшие..
Предоставляет поддержку Contract. (Унаследовано от Stream) |
Read(Byte[], Int32, Int32) |
Считывает блок байтов из потока и записывает данные в указанный буфер, начиная с указанной позиции для указанной длины. (Унаследовано от PipeStream) |
Read(Span<Byte>) |
Считывает последовательность байтов из текущего потока, записывает их в массив байтов и перемещает позицию в потоке по количеству байтов, считываемых. (Унаследовано от PipeStream) |
Read |
Асинхронно считывает последовательность байтов из текущего потока и перемещает позицию в потоке по числу байтов. (Унаследовано от Stream) |
Read |
Асинхронно считывает последовательность байтов из текущего потока в массив байтов, начиная с указанного числа байтов, перемещает позицию в потоке по числу операций чтения байтов и отслеживает запросы на отмену. (Унаследовано от PipeStream) |
Read |
Асинхронно считывает последовательность байтов из текущего потока, записывает их в диапазон памяти байтов, перемещает позицию в потоке по количеству байтов, считываемых и отслеживает запросы на отмену. (Унаследовано от PipeStream) |
Read |
Считывает по крайней мере минимальное количество байтов из текущего потока и перемещает положение в потоке по количеству байтов, считываемых. (Унаследовано от Stream) |
Read |
Асинхронно считывает по крайней мере минимальное количество байтов из текущего потока, перемещает положение в потоке по количеству операций чтения байтов и отслеживает запросы на отмену. (Унаследовано от Stream) |
Read |
Считывает байт из канала. (Унаследовано от PipeStream) |
Read |
Считывает |
Read |
Считывает байты из текущего потока и перемещает позицию в потоке до заполнения |
Read |
Асинхронно считывает |
Read |
Асинхронно считывает байты из текущего потока, перемещает положение в потоке до заполнения |
Run |
Вызывает делегат во время олицетворения клиента. |
Seek(Int64, Seek |
Задает текущее положение текущего потока указанным значением. (Унаследовано от PipeStream) |
Set |
Применяет записи списка управления доступом (ACL), указанные объектом PipeSecurity, к каналу, указанному текущим объектом PipeStream. (Унаследовано от PipeStream) |
Set |
Задает длину текущего потока заданному значению. (Унаследовано от PipeStream) |
To |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
Wait |
Ожидает подключения клиента к этому объекту NamedPipeServerStream. |
Wait |
Асинхронно ожидает подключения клиента к этому объекту NamedPipeServerStream. |
Wait |
Асинхронно ожидает подключения клиента к этому объекту NamedPipeServerStream и отслеживает запросы на отмену. |
Wait |
Ожидает, пока другой конец канала будет считывать все отправленные байты. (Унаследовано от PipeStream) |
Write(Byte[], Int32, Int32) |
Записывает блок байтов в текущий поток с помощью данных из буфера. (Унаследовано от PipeStream) |
Write(Read |
Записывает последовательность байтов в текущий поток и перемещает текущую позицию в этом потоке по количеству записанных байтов. (Унаследовано от PipeStream) |
Write |
Асинхронно записывает последовательность байтов в текущий поток и перемещает текущую позицию в этом потоке по количеству записанных байтов. (Унаследовано от Stream) |
Write |
Асинхронно записывает указанное число байтов из массива байтов, начиная с указанной позиции, перемещает текущую позицию в этом потоке по количеству записанных байтов и отслеживает запросы на отмену. (Унаследовано от PipeStream) |
Write |
Асинхронно записывает последовательность байтов в текущий поток, перемещает текущую позицию в этом потоке по количеству записанных байтов и отслеживает запросы на отмену. (Унаследовано от PipeStream) |
Write |
Записывает байт в текущий поток. (Унаследовано от PipeStream) |
Copy |
Асинхронно считывает байты из Stream и записывает их в указанный PipeWriterс помощью маркера отмены. |
Get |
Возвращает сведения о безопасности потока канала. |
Set |
Изменяет атрибуты безопасности существующего потока канала. |
Configure |
Настраивает способ ожидания задач, возвращаемых из асинхронного удаления. |
Продукт | Версии |
---|---|
.NET | Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9 |
.NET Framework | 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
.NET Standard | 2.0, 2.1 |