Compartir vía


NamedPipeServerStream Clase

Definición

Expone un Stream alrededor de una canalización con nombre, que admite operaciones de lectura y escritura sincrónicas y asincrónicas.

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
Herencia
NamedPipeServerStream
Herencia
NamedPipeServerStream

Ejemplos

En el ejemplo siguiente se muestra una manera de enviar una cadena de un proceso primario a un proceso secundario en el mismo equipo mediante canalizaciones con nombre. En este ejemplo se crea un objeto NamedPipeServerStream en un proceso primario con un valor PipeDirection de Out. A continuación, el servidor espera un objeto NamedPipeClientStream en un proceso secundario para conectarse a él. En este ejemplo, ambos procesos están en el mismo equipo y el objeto NamedPipeClientStream tiene un valor PipeDirection de In. A continuación, el proceso primario envía una cadena proporcionada por el usuario al proceso secundario. La cadena se muestra en la consola.

Este ejemplo es para el proceso de servidor, que usa la clase NamedPipeServerStream. Para obtener todo el ejemplo de código, incluido el código para el cliente de canalización y el servidor, vea How to: Use Named Pipes for Network Interprocess Communication.

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

Comentarios

Las canalizaciones con nombre proporcionan canalizaciones unidireccionales o dúplex para la comunicación entre un servidor de canalización y uno o varios clientes de canalización. Las canalizaciones con nombre se pueden usar para la comunicación entre procesos localmente o a través de una red. Varios objetos de NamedPipeClientStream pueden compartir un único nombre de canalización.

Cualquier proceso puede actuar como un cliente o servidor de canalización con nombre, o ambos.

Constructores

NamedPipeServerStream(PipeDirection, Boolean, Boolean, SafePipeHandle)

Inicializa una nueva instancia de la clase NamedPipeServerStream a partir del identificador de canalización especificado.

NamedPipeServerStream(String)

Inicializa una nueva instancia de la clase NamedPipeServerStream con el nombre de canalización especificado.

NamedPipeServerStream(String, PipeDirection)

Inicializa una nueva instancia de la clase NamedPipeServerStream con el nombre de canalización y la dirección de canalización especificados.

NamedPipeServerStream(String, PipeDirection, Int32)

Inicializa una nueva instancia de la clase NamedPipeServerStream con el nombre de canalización, la dirección de canalización y el número máximo de instancias de servidor especificadas.

NamedPipeServerStream(String, PipeDirection, Int32, PipeTransmissionMode)

Inicializa una nueva instancia de la clase NamedPipeServerStream con el nombre de canalización, la dirección de canalización, el número máximo de instancias de servidor y el modo de transmisión especificados.

NamedPipeServerStream(String, PipeDirection, Int32, PipeTransmissionMode, PipeOptions)

Inicializa una nueva instancia de la clase NamedPipeServerStream con el nombre de canalización, la dirección de canalización, el número máximo de instancias de servidor, el modo de transmisión y las opciones de canalización especificados.

NamedPipeServerStream(String, PipeDirection, Int32, PipeTransmissionMode, PipeOptions, Int32, Int32)

Inicializa una nueva instancia de la clase NamedPipeServerStream con el nombre de canalización, dirección de canalización, número máximo de instancias de servidor, modo de transmisión, opciones de canalización y tamaños de búfer recomendados.

NamedPipeServerStream(String, PipeDirection, Int32, PipeTransmissionMode, PipeOptions, Int32, Int32, PipeSecurity)

Inicializa una nueva instancia de la clase NamedPipeServerStream con el nombre de canalización especificado, dirección de canalización, número máximo de instancias de servidor, modo de transmisión, opciones de canalización, tamaños de búfer recomendados y seguridad de canalización.

NamedPipeServerStream(String, PipeDirection, Int32, PipeTransmissionMode, PipeOptions, Int32, Int32, PipeSecurity, HandleInheritability)

Inicializa una nueva instancia de la clase NamedPipeServerStream con el nombre de canalización especificado, dirección de canalización, número máximo de instancias de servidor, modo de transmisión, opciones de canalización, tamaños de búfer recomendados, seguridad de canalización y modo de heredar.

NamedPipeServerStream(String, PipeDirection, Int32, PipeTransmissionMode, PipeOptions, Int32, Int32, PipeSecurity, HandleInheritability, PipeAccessRights)

Inicializa una nueva instancia de la clase NamedPipeServerStream con el nombre de canalización especificado, dirección de canalización, número máximo de instancias de servidor, modo de transmisión, opciones de canalización, tamaños de búfer recomendados, seguridad de canalización, modo de heredar y derechos de acceso de canalización.

Campos

MaxAllowedServerInstances

Representa el número máximo de instancias de servidor que permiten los recursos del sistema.

Propiedades

CanRead

Obtiene un valor que indica si la secuencia actual admite operaciones de lectura.

(Heredado de PipeStream)
CanSeek

Obtiene un valor que indica si la secuencia actual admite operaciones de búsqueda.

(Heredado de PipeStream)
CanTimeout

Obtiene un valor que determina si la secuencia actual puede agotar el tiempo de espera.

(Heredado de Stream)
CanWrite

Obtiene un valor que indica si la secuencia actual admite operaciones de escritura.

(Heredado de PipeStream)
InBufferSize

Obtiene el tamaño, en bytes, del búfer de entrada para una canalización.

(Heredado de PipeStream)
IsAsync

Obtiene un valor que indica si un objeto PipeStream se abrió de forma asincrónica o sincrónica.

(Heredado de PipeStream)
IsConnected

Obtiene o establece un valor que indica si un objeto PipeStream está conectado.

(Heredado de PipeStream)
IsHandleExposed

Obtiene un valor que indica si se expone un identificador a un objeto PipeStream.

(Heredado de PipeStream)
IsMessageComplete

Obtiene un valor que indica si hay más datos en el mensaje devuelto por la operación de lectura más reciente.

(Heredado de PipeStream)
Length

Obtiene la longitud de una secuencia, en bytes.

(Heredado de PipeStream)
OutBufferSize

Obtiene el tamaño, en bytes, del búfer de salida de una canalización.

(Heredado de PipeStream)
Position

Obtiene o establece la posición actual de la secuencia actual.

(Heredado de PipeStream)
ReadMode

Obtiene o establece el modo de lectura de un objeto PipeStream.

(Heredado de PipeStream)
ReadTimeout

Obtiene o establece un valor, en milisegundos, que determina cuánto tiempo intentará leer la secuencia antes de que se agote el tiempo de espera.

(Heredado de Stream)
SafePipeHandle

Obtiene el identificador seguro para el extremo local de la canalización que el objeto PipeStream actual encapsula.

(Heredado de PipeStream)
TransmissionMode

Obtiene el modo de transmisión de canalización admitido por la canalización actual.

(Heredado de PipeStream)
WriteTimeout

Obtiene o establece un valor, en milisegundos, que determina cuánto tiempo intentará escribir la secuencia antes de que se agote el tiempo de espera.

(Heredado de Stream)

Métodos

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

Inicia una operación de lectura asincrónica.

(Heredado de PipeStream)
BeginWaitForConnection(AsyncCallback, Object)

Comienza una operación asincrónica para esperar a que un cliente se conecte.

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

Comienza una operación de escritura asincrónica.

(Heredado de PipeStream)
CheckPipePropertyOperations()

Comprueba que la canalización está en un estado adecuado para obtener o establecer propiedades.

(Heredado de PipeStream)
CheckReadOperations()

Comprueba que la canalización está en un estado conectado para las operaciones de lectura.

(Heredado de PipeStream)
CheckWriteOperations()

Comprueba que la canalización está en un estado conectado para las operaciones de escritura.

(Heredado de PipeStream)
Close()

Cierra la secuencia actual y libera los recursos (como sockets y identificadores de archivo) asociados a la secuencia actual. En lugar de llamar a este método, asegúrese de que la secuencia se elimina correctamente.

(Heredado de Stream)
CopyTo(Stream)

Lee los bytes de la secuencia actual y los escribe en otra secuencia. Ambas posiciones de secuencias están avanzadas por el número de bytes copiados.

(Heredado de Stream)
CopyTo(Stream, Int32)

Lee los bytes de la secuencia actual y los escribe en otra secuencia mediante un tamaño de búfer especificado. Ambas posiciones de secuencias están avanzadas por el número de bytes copiados.

(Heredado de Stream)
CopyToAsync(Stream)

Lee asincrónicamente los bytes de la secuencia actual y los escribe en otra secuencia. Ambas posiciones de secuencias están avanzadas por el número de bytes copiados.

(Heredado de Stream)
CopyToAsync(Stream, CancellationToken)

Lee asincrónicamente los bytes de la secuencia actual y los escribe en otra secuencia, mediante un token de cancelación especificado. Ambas posiciones de secuencias están avanzadas por el número de bytes copiados.

(Heredado de Stream)
CopyToAsync(Stream, Int32)

Lee de forma asincrónica los bytes de la secuencia actual y los escribe en otra secuencia mediante un tamaño de búfer especificado. Ambas posiciones de secuencias están avanzadas por el número de bytes copiados.

(Heredado de Stream)
CopyToAsync(Stream, Int32, CancellationToken)

Lee asincrónicamente los bytes de la secuencia actual y los escribe en otra secuencia, mediante un tamaño de búfer y un token de cancelación especificados. Ambas posiciones de secuencias están avanzadas por el número de bytes copiados.

(Heredado de Stream)
CreateObjRef(Type)

Crea un objeto que contiene toda la información pertinente necesaria para generar un proxy usado para comunicarse con un objeto remoto.

(Heredado de MarshalByRefObject)
CreateWaitHandle()
Obsoletos.
Obsoletos.
Obsoletos.

Asigna un objeto WaitHandle.

(Heredado de Stream)
Disconnect()

Desconecta la conexión actual.

Dispose()

Libera todos los recursos usados por el Stream.

(Heredado de Stream)
Dispose(Boolean)

Libera los recursos no administrados utilizados por la clase PipeStream y, opcionalmente, libera los recursos administrados.

(Heredado de PipeStream)
DisposeAsync()

Libera asincrónicamente los recursos no administrados usados por el Stream.

(Heredado de Stream)
EndRead(IAsyncResult)

Finaliza una solicitud de lectura asincrónica pendiente.

(Heredado de PipeStream)
EndWaitForConnection(IAsyncResult)

Finaliza una operación asincrónica para esperar a que un cliente se conecte.

EndWrite(IAsyncResult)

Finaliza una solicitud de escritura asincrónica pendiente.

(Heredado de PipeStream)
Equals(Object)

Determina si el objeto especificado es igual al objeto actual.

(Heredado de Object)
Finalize()

Libera recursos no administrados y realiza otras operaciones de limpieza antes de que la recolección de elementos no utilizados recupere la instancia de NamedPipeServerStream.

Flush()

Borra el búfer de la secuencia actual y hace que los datos almacenados en búfer se escriban en el dispositivo subyacente.

(Heredado de PipeStream)
FlushAsync()

Borra de forma asincrónica todos los búferes de esta secuencia y hace que los datos almacenados en búfer se escriban en el dispositivo subyacente.

(Heredado de Stream)
FlushAsync(CancellationToken)

Borra de forma asincrónica el búfer de la secuencia actual y hace que los datos almacenados en búfer se escriban en el dispositivo subyacente.

(Heredado de PipeStream)
GetAccessControl()

Obtiene un objeto PipeSecurity que encapsula las entradas de la lista de control de acceso (ACL) para la canalización descrita por el objeto PipeStream actual.

(Heredado de PipeStream)
GetHashCode()

Actúa como función hash predeterminada.

(Heredado de Object)
GetImpersonationUserName()

Obtiene el nombre de usuario del cliente en el otro extremo de la canalización.

GetLifetimeService()
Obsoletos.

Recupera el objeto de servicio de duración actual que controla la directiva de duración de esta instancia.

(Heredado de MarshalByRefObject)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
InitializeHandle(SafePipeHandle, Boolean, Boolean)

Inicializa un objeto PipeStream a partir del objeto SafePipeHandle especificado.

(Heredado de PipeStream)
InitializeLifetimeService()
Obsoletos.

Obtiene un objeto de servicio de duración para controlar la directiva de duración de esta instancia.

(Heredado de MarshalByRefObject)
MemberwiseClone()

Crea una copia superficial del Objectactual.

(Heredado de Object)
MemberwiseClone(Boolean)

Crea una copia superficial del objeto MarshalByRefObject actual.

(Heredado de MarshalByRefObject)
ObjectInvariant()
Obsoletos.

Proporciona compatibilidad con un Contract.

(Heredado de Stream)
Read(Byte[], Int32, Int32)

Lee un bloque de bytes de una secuencia y escribe los datos en un búfer especificado a partir de una posición especificada para una longitud especificada.

(Heredado de PipeStream)
Read(Span<Byte>)

Lee una secuencia de bytes de la secuencia actual, las escribe en una matriz de bytes y avanza la posición dentro de la secuencia por el número de bytes leídos.

(Heredado de PipeStream)
ReadAsync(Byte[], Int32, Int32)

Lee de forma asincrónica una secuencia de bytes de la secuencia actual y avanza la posición dentro de la secuencia por el número de bytes leídos.

(Heredado de Stream)
ReadAsync(Byte[], Int32, Int32, CancellationToken)

Lee de forma asincrónica una secuencia de bytes de la secuencia actual a una matriz de bytes que comienza en una posición especificada para un número especificado de bytes, avanza la posición dentro de la secuencia por el número de bytes leídos y supervisa las solicitudes de cancelación.

(Heredado de PipeStream)
ReadAsync(Memory<Byte>, CancellationToken)

Lee de forma asincrónica una secuencia de bytes de la secuencia actual, las escribe en un intervalo de memoria de bytes, avanza la posición dentro de la secuencia por el número de bytes leídos y supervisa las solicitudes de cancelación.

(Heredado de PipeStream)
ReadAtLeast(Span<Byte>, Int32, Boolean)

Lee al menos un número mínimo de bytes de la secuencia actual y avanza la posición dentro de la secuencia por el número de bytes leídos.

(Heredado de Stream)
ReadAtLeastAsync(Memory<Byte>, Int32, Boolean, CancellationToken)

Lee de forma asincrónica al menos un número mínimo de bytes de la secuencia actual, avanza la posición dentro de la secuencia por el número de bytes leídos y supervisa las solicitudes de cancelación.

(Heredado de Stream)
ReadByte()

Lee un byte de una canalización.

(Heredado de PipeStream)
ReadExactly(Byte[], Int32, Int32)

Lee count número de bytes de la secuencia actual y avanza la posición dentro de la secuencia.

(Heredado de Stream)
ReadExactly(Span<Byte>)

Lee bytes de la secuencia actual y avanza la posición dentro de la secuencia hasta que se rellena el buffer.

(Heredado de Stream)
ReadExactlyAsync(Byte[], Int32, Int32, CancellationToken)

Lee de forma asincrónica count número de bytes de la secuencia actual, avanza la posición dentro de la secuencia y supervisa las solicitudes de cancelación.

(Heredado de Stream)
ReadExactlyAsync(Memory<Byte>, CancellationToken)

Lee de forma asincrónica bytes de la secuencia actual, avanza la posición dentro de la secuencia hasta que se rellena el buffer y supervisa las solicitudes de cancelación.

(Heredado de Stream)
RunAsClient(PipeStreamImpersonationWorker)

Llama a un delegado al suplantar al cliente.

Seek(Int64, SeekOrigin)

Establece la posición actual de la secuencia actual en el valor especificado.

(Heredado de PipeStream)
SetAccessControl(PipeSecurity)

Aplica las entradas de la lista de control de acceso (ACL) especificadas por un objeto PipeSecurity a la canalización especificada por el objeto PipeStream actual.

(Heredado de PipeStream)
SetLength(Int64)

Establece la longitud de la secuencia actual en el valor especificado.

(Heredado de PipeStream)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)
WaitForConnection()

Espera a que un cliente se conecte a este objeto NamedPipeServerStream.

WaitForConnectionAsync()

Espera de forma asincrónica que un cliente se conecte a este objeto NamedPipeServerStream.

WaitForConnectionAsync(CancellationToken)

Espera de forma asincrónica a que un cliente se conecte a este objeto NamedPipeServerStream y supervisa las solicitudes de cancelación.

WaitForPipeDrain()

Espera a que el otro extremo de la canalización lea todos los bytes enviados.

(Heredado de PipeStream)
Write(Byte[], Int32, Int32)

Escribe un bloque de bytes en el flujo actual mediante datos de un búfer.

(Heredado de PipeStream)
Write(ReadOnlySpan<Byte>)

Escribe una secuencia de bytes en la secuencia actual y avanza la posición actual dentro de esta secuencia por el número de bytes escritos.

(Heredado de PipeStream)
WriteAsync(Byte[], Int32, Int32)

Escribe de forma asincrónica una secuencia de bytes en la secuencia actual y avanza la posición actual dentro de esta secuencia por el número de bytes escritos.

(Heredado de Stream)
WriteAsync(Byte[], Int32, Int32, CancellationToken)

Escribe de forma asincrónica un número especificado de bytes de una matriz de bytes a partir de una posición especificada, avanza la posición actual dentro de esta secuencia por el número de bytes escritos y supervisa las solicitudes de cancelación.

(Heredado de PipeStream)
WriteAsync(ReadOnlyMemory<Byte>, CancellationToken)

Escribe de forma asincrónica una secuencia de bytes en la secuencia actual, avanza la posición actual dentro de esta secuencia por el número de bytes escritos y supervisa las solicitudes de cancelación.

(Heredado de PipeStream)
WriteByte(Byte)

Escribe un byte en la secuencia actual.

(Heredado de PipeStream)

Métodos de extensión

CopyToAsync(Stream, PipeWriter, CancellationToken)

Lee asincrónicamente los bytes de la Stream y los escribe en el PipeWriterespecificado mediante un token de cancelación.

GetAccessControl(PipeStream)

Devuelve la información de seguridad de un flujo de canalización.

SetAccessControl(PipeStream, PipeSecurity)

Cambia los atributos de seguridad de un flujo de canalización existente.

ConfigureAwait(IAsyncDisposable, Boolean)

Configura cómo se realizarán las esperas en las tareas devueltas desde un descartable asincrónico.

Se aplica a