Partage via


NamedPipeServerStream Classe

Définition

Expose une Stream autour d’un canal nommé, prenant en charge les opérations de lecture et d’écriture synchrones et asynchrones.

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
Héritage
NamedPipeServerStream
Héritage
NamedPipeServerStream

Exemples

L’exemple suivant montre un moyen d’envoyer une chaîne d’un processus parent à un processus enfant sur le même ordinateur à l’aide de canaux nommés. Cet exemple crée un objet NamedPipeServerStream dans un processus parent avec une valeur PipeDirection de Out. Le serveur attend ensuite qu’un objet NamedPipeClientStream dans un processus enfant se connecte à celui-ci. Dans cet exemple, les deux processus se trouvent sur le même ordinateur et l’objet NamedPipeClientStream a une valeur PipeDirection de In. Le processus parent envoie ensuite une chaîne fournie par l’utilisateur au processus enfant. La chaîne s’affiche dans la console.

Cet exemple concerne le processus serveur, qui utilise la classe NamedPipeServerStream. Pour obtenir l’exemple de code entier, y compris le code du client de canal et du serveur, consultez Guide pratique pour utiliser des canaux nommés pour la communication interprocesseur réseau.

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

Remarques

Les canaux nommés fournissent des canaux unidirectionnel ou duplex pour la communication entre un serveur de canal et un ou plusieurs clients de canal. Les canaux nommés peuvent être utilisés pour la communication interprocesseur localement ou sur un réseau. Un nom de canal unique peut être partagé par plusieurs objets NamedPipeClientStream.

Tout processus peut agir comme un serveur de canal nommé ou un client, ou les deux.

Constructeurs

NamedPipeServerStream(PipeDirection, Boolean, Boolean, SafePipeHandle)

Initialise une nouvelle instance de la classe NamedPipeServerStream à partir du handle de canal spécifié.

NamedPipeServerStream(String)

Initialise une nouvelle instance de la classe NamedPipeServerStream avec le nom de canal spécifié.

NamedPipeServerStream(String, PipeDirection)

Initialise une nouvelle instance de la classe NamedPipeServerStream avec le nom de canal et le sens du canal spécifiés.

NamedPipeServerStream(String, PipeDirection, Int32)

Initialise une nouvelle instance de la classe NamedPipeServerStream avec le nom de canal, la direction du canal et le nombre maximal d’instances de serveur spécifiées.

NamedPipeServerStream(String, PipeDirection, Int32, PipeTransmissionMode)

Initialise une nouvelle instance de la classe NamedPipeServerStream avec le nom de canal, la direction du canal, le nombre maximal d’instances de serveur et le mode de transmission spécifiés.

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

Initialise une nouvelle instance de la classe NamedPipeServerStream avec le nom de canal, la direction du canal, le nombre maximal d’instances de serveur, le mode de transmission et les options de canal spécifiées.

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

Initialise une nouvelle instance de la classe NamedPipeServerStream avec le nom de canal, la direction du canal, le nombre maximal d’instances de serveur, le mode de transmission, les options de canal et les tailles de mémoire tampon recommandées dans et hors mémoire tampon.

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

Initialise une nouvelle instance de la classe NamedPipeServerStream avec le nom de canal, la direction du canal, le nombre maximal d’instances de serveur, le mode de transmission, les options de canal, les tailles de mémoire tampon recommandées et sortantes et la sécurité du canal.

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

Initialise une nouvelle instance de la classe NamedPipeServerStream avec le nom de canal, le sens du canal, le nombre maximal d’instances de serveur, le mode de transmission, les options de canal, les tailles de mémoire tampon recommandées et sortantes, la sécurité du canal et le mode d’hériter.

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

Initialise une nouvelle instance de la classe NamedPipeServerStream avec le nom de canal, la direction du canal, le nombre maximal d’instances de serveur, le mode de transmission, les options de canal, les tailles de mémoire tampon recommandées et sortantes, la sécurité du canal, le mode d’hériter et les droits d’accès au canal.

Champs

MaxAllowedServerInstances

Représente le nombre maximal d’instances de serveur autorisées par les ressources système.

Propriétés

CanRead

Obtient une valeur indiquant si le flux actuel prend en charge les opérations de lecture.

(Hérité de PipeStream)
CanSeek

Obtient une valeur indiquant si le flux actuel prend en charge les opérations de recherche.

(Hérité de PipeStream)
CanTimeout

Obtient une valeur qui détermine si le flux actuel peut expirer.

(Hérité de Stream)
CanWrite

Obtient une valeur indiquant si le flux actuel prend en charge les opérations d’écriture.

(Hérité de PipeStream)
InBufferSize

Obtient la taille, en octets, de la mémoire tampon entrante pour un canal.

(Hérité de PipeStream)
IsAsync

Obtient une valeur indiquant si un objet PipeStream a été ouvert de manière asynchrone ou synchrone.

(Hérité de PipeStream)
IsConnected

Obtient ou définit une valeur indiquant si un objet PipeStream est connecté.

(Hérité de PipeStream)
IsHandleExposed

Obtient une valeur indiquant si un handle vers un objet PipeStream est exposé.

(Hérité de PipeStream)
IsMessageComplete

Obtient une valeur indiquant s’il existe plus de données dans le message retourné par l’opération de lecture la plus récente.

(Hérité de PipeStream)
Length

Obtient la longueur d’un flux, en octets.

(Hérité de PipeStream)
OutBufferSize

Obtient la taille, en octets, de la mémoire tampon sortante d’un canal.

(Hérité de PipeStream)
Position

Obtient ou définit la position actuelle du flux actuel.

(Hérité de PipeStream)
ReadMode

Obtient ou définit le mode de lecture d’un objet PipeStream.

(Hérité de PipeStream)
ReadTimeout

Obtient ou définit une valeur, en millisecondes, qui détermine la durée pendant laquelle le flux tente de lire avant l’expiration du délai d’attente.

(Hérité de Stream)
SafePipeHandle

Obtient le handle sécurisé pour la fin locale du canal que l’objet PipeStream actuel encapsule.

(Hérité de PipeStream)
TransmissionMode

Obtient le mode de transmission de canal pris en charge par le canal actuel.

(Hérité de PipeStream)
WriteTimeout

Obtient ou définit une valeur, en millisecondes, qui détermine la durée pendant laquelle le flux tentera d’écrire avant l’expiration du délai d’attente.

(Hérité de Stream)

Méthodes

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

Commence une opération de lecture asynchrone.

(Hérité de PipeStream)
BeginWaitForConnection(AsyncCallback, Object)

Commence une opération asynchrone pour attendre qu’un client se connecte.

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

Commence une opération d’écriture asynchrone.

(Hérité de PipeStream)
CheckPipePropertyOperations()

Vérifie que le canal est dans un état approprié pour obtenir ou définir des propriétés.

(Hérité de PipeStream)
CheckReadOperations()

Vérifie que le canal est dans un état connecté pour les opérations de lecture.

(Hérité de PipeStream)
CheckWriteOperations()

Vérifie que le canal est dans un état connecté pour les opérations d’écriture.

(Hérité de PipeStream)
Close()

Ferme le flux actuel et libère toutes les ressources (telles que les sockets et les handles de fichiers) associées au flux actuel. Au lieu d’appeler cette méthode, vérifiez que le flux est correctement supprimé.

(Hérité de Stream)
CopyTo(Stream)

Lit les octets du flux actuel et les écrit dans un autre flux. Les deux positions de flux sont avancées par le nombre d’octets copiés.

(Hérité de Stream)
CopyTo(Stream, Int32)

Lit les octets du flux actuel et les écrit dans un autre flux à l’aide d’une taille de mémoire tampon spécifiée. Les deux positions de flux sont avancées par le nombre d’octets copiés.

(Hérité de Stream)
CopyToAsync(Stream)

Lit de manière asynchrone les octets du flux actuel et les écrit dans un autre flux. Les deux positions de flux sont avancées par le nombre d’octets copiés.

(Hérité de Stream)
CopyToAsync(Stream, CancellationToken)

Lit de manière asynchrone les octets du flux actuel et les écrit dans un autre flux à l’aide d’un jeton d’annulation spécifié. Les deux positions de flux sont avancées par le nombre d’octets copiés.

(Hérité de Stream)
CopyToAsync(Stream, Int32)

Lit de façon asynchrone les octets du flux actuel et les écrit dans un autre flux à l’aide d’une taille de mémoire tampon spécifiée. Les deux positions de flux sont avancées par le nombre d’octets copiés.

(Hérité de Stream)
CopyToAsync(Stream, Int32, CancellationToken)

Lit de manière asynchrone les octets du flux actuel et les écrit dans un autre flux à l’aide d’une taille de mémoire tampon et d’un jeton d’annulation spécifiés. Les deux positions de flux sont avancées par le nombre d’octets copiés.

(Hérité de Stream)
CreateObjRef(Type)

Crée un objet qui contient toutes les informations pertinentes requises pour générer un proxy utilisé pour communiquer avec un objet distant.

(Hérité de MarshalByRefObject)
CreateWaitHandle()
Obsolète.
Obsolète.
Obsolète.

Alloue un objet WaitHandle.

(Hérité de Stream)
Disconnect()

Déconnecte la connexion actuelle.

Dispose()

Libère toutes les ressources utilisées par le Stream.

(Hérité de Stream)
Dispose(Boolean)

Libère les ressources non managées utilisées par la classe PipeStream et libère éventuellement les ressources managées.

(Hérité de PipeStream)
DisposeAsync()

Libère de façon asynchrone les ressources non managées utilisées par le Stream.

(Hérité de Stream)
EndRead(IAsyncResult)

Termine une demande de lecture asynchrone en attente.

(Hérité de PipeStream)
EndWaitForConnection(IAsyncResult)

Termine une opération asynchrone pour attendre qu’un client se connecte.

EndWrite(IAsyncResult)

Termine une demande d’écriture asynchrone en attente.

(Hérité de PipeStream)
Equals(Object)

Détermine si l’objet spécifié est égal à l’objet actuel.

(Hérité de Object)
Finalize()

Libère des ressources non managées et effectue d’autres opérations de nettoyage avant que l’instance de NamedPipeServerStream soit récupérée par le garbage collection.

Flush()

Efface la mémoire tampon du flux actuel et entraîne l’écriture de toutes les données mises en mémoire tampon sur l’appareil sous-jacent.

(Hérité de PipeStream)
FlushAsync()

Efface de façon asynchrone toutes les mémoires tampons de ce flux et entraîne l’écriture de toutes les données mises en mémoire tampon sur l’appareil sous-jacent.

(Hérité de Stream)
FlushAsync(CancellationToken)

Efface de façon asynchrone la mémoire tampon du flux actuel et entraîne l’écriture de toutes les données mises en mémoire tampon sur l’appareil sous-jacent.

(Hérité de PipeStream)
GetAccessControl()

Obtient un objet PipeSecurity qui encapsule les entrées de liste de contrôle d’accès (ACL) pour le canal décrit par l’objet PipeStream actuel.

(Hérité de PipeStream)
GetHashCode()

Sert de fonction de hachage par défaut.

(Hérité de Object)
GetImpersonationUserName()

Obtient le nom d’utilisateur du client sur l’autre extrémité du canal.

GetLifetimeService()
Obsolète.

Récupère l’objet de service de durée de vie actuel qui contrôle la stratégie de durée de vie de cette instance.

(Hérité de MarshalByRefObject)
GetType()

Obtient la Type de l’instance actuelle.

(Hérité de Object)
InitializeHandle(SafePipeHandle, Boolean, Boolean)

Initialise un objet PipeStream à partir de l’objet SafePipeHandle spécifié.

(Hérité de PipeStream)
InitializeLifetimeService()
Obsolète.

Obtient un objet de service de durée de vie pour contrôler la stratégie de durée de vie de cette instance.

(Hérité de MarshalByRefObject)
MemberwiseClone()

Crée une copie superficielle du Objectactuel.

(Hérité de Object)
MemberwiseClone(Boolean)

Crée une copie superficielle de l’objet MarshalByRefObject actuel.

(Hérité de MarshalByRefObject)
ObjectInvariant()
Obsolète.

Fournit la prise en charge d’un Contract.

(Hérité de Stream)
Read(Byte[], Int32, Int32)

Lit un bloc d’octets d’un flux et écrit les données dans une mémoire tampon spécifiée à partir d’une position spécifiée pour une longueur spécifiée.

(Hérité de PipeStream)
Read(Span<Byte>)

Lit une séquence d’octets du flux actuel, les écrit dans un tableau d’octets et avance la position dans le flux par le nombre d’octets lus.

(Hérité de PipeStream)
ReadAsync(Byte[], Int32, Int32)

Lit de façon asynchrone une séquence d’octets à partir du flux actuel et avance la position dans le flux en fonction du nombre d’octets lus.

(Hérité de Stream)
ReadAsync(Byte[], Int32, Int32, CancellationToken)

Lit de façon asynchrone une séquence d’octets du flux actuel vers un tableau d’octets à partir d’une position spécifiée pour un nombre spécifié d’octets, avance la position dans le flux par le nombre d’octets lus et surveille les demandes d’annulation.

(Hérité de PipeStream)
ReadAsync(Memory<Byte>, CancellationToken)

Lit de façon asynchrone une séquence d’octets du flux actuel, les écrit dans une plage de mémoire d’octets, avance la position dans le flux par le nombre d’octets lus et surveille les demandes d’annulation.

(Hérité de PipeStream)
ReadAtLeast(Span<Byte>, Int32, Boolean)

Lit au moins un nombre minimal d’octets du flux actuel et avance la position dans le flux par le nombre d’octets lus.

(Hérité de Stream)
ReadAtLeastAsync(Memory<Byte>, Int32, Boolean, CancellationToken)

Lit de façon asynchrone au moins un nombre minimal d’octets à partir du flux actuel, avance la position dans le flux par le nombre d’octets lus et surveille les demandes d’annulation.

(Hérité de Stream)
ReadByte()

Lit un octet à partir d’un canal.

(Hérité de PipeStream)
ReadExactly(Byte[], Int32, Int32)

Lit count nombre d’octets du flux actuel et avance la position dans le flux.

(Hérité de Stream)
ReadExactly(Span<Byte>)

Lit les octets du flux actuel et avance la position dans le flux jusqu’à ce que le buffer soit rempli.

(Hérité de Stream)
ReadExactlyAsync(Byte[], Int32, Int32, CancellationToken)

Lit de façon asynchrone count nombre d’octets du flux actuel, avance la position dans le flux et surveille les demandes d’annulation.

(Hérité de Stream)
ReadExactlyAsync(Memory<Byte>, CancellationToken)

Lit de manière asynchrone les octets du flux actuel, avance la position dans le flux jusqu’à ce que le buffer soit rempli et surveille les demandes d’annulation.

(Hérité de Stream)
RunAsClient(PipeStreamImpersonationWorker)

Appelle un délégué lors de l’emprunt d’identité du client.

Seek(Int64, SeekOrigin)

Définit la position actuelle du flux actuel sur la valeur spécifiée.

(Hérité de PipeStream)
SetAccessControl(PipeSecurity)

Applique les entrées de liste de contrôle d’accès spécifiées par un objet PipeSecurity au canal spécifié par l’objet PipeStream actuel.

(Hérité de PipeStream)
SetLength(Int64)

Définit la longueur du flux actuel sur la valeur spécifiée.

(Hérité de PipeStream)
ToString()

Retourne une chaîne qui représente l’objet actuel.

(Hérité de Object)
WaitForConnection()

Attend qu’un client se connecte à cet objet NamedPipeServerStream.

WaitForConnectionAsync()

Attend de façon asynchrone qu’un client se connecte à cet objet NamedPipeServerStream.

WaitForConnectionAsync(CancellationToken)

Attend de façon asynchrone qu’un client se connecte à cet objet NamedPipeServerStream et surveille les demandes d’annulation.

WaitForPipeDrain()

Attend que l’autre extrémité du canal lit tous les octets envoyés.

(Hérité de PipeStream)
Write(Byte[], Int32, Int32)

Écrit un bloc d’octets dans le flux actuel à l’aide de données d’une mémoire tampon.

(Hérité de PipeStream)
Write(ReadOnlySpan<Byte>)

Écrit une séquence d’octets dans le flux actuel et avance la position actuelle dans ce flux par le nombre d’octets écrits.

(Hérité de PipeStream)
WriteAsync(Byte[], Int32, Int32)

Écrit de façon asynchrone une séquence d’octets dans le flux actuel et avance la position actuelle dans ce flux par le nombre d’octets écrits.

(Hérité de Stream)
WriteAsync(Byte[], Int32, Int32, CancellationToken)

Écrit de façon asynchrone un nombre spécifié d’octets à partir d’un tableau d’octets à partir d’une position spécifiée, avance la position actuelle dans ce flux par le nombre d’octets écrits et surveille les demandes d’annulation.

(Hérité de PipeStream)
WriteAsync(ReadOnlyMemory<Byte>, CancellationToken)

Écrit de façon asynchrone une séquence d’octets dans le flux actuel, avance la position actuelle dans ce flux par le nombre d’octets écrits et surveille les demandes d’annulation.

(Hérité de PipeStream)
WriteByte(Byte)

Écrit un octet dans le flux actuel.

(Hérité de PipeStream)

Méthodes d’extension

CopyToAsync(Stream, PipeWriter, CancellationToken)

Lit de manière asynchrone les octets de l'Stream et les écrit dans le PipeWriterspécifié, à l’aide d’un jeton d’annulation.

GetAccessControl(PipeStream)

Retourne les informations de sécurité d’un flux de canal.

SetAccessControl(PipeStream, PipeSecurity)

Modifie les attributs de sécurité d’un flux de canal existant.

ConfigureAwait(IAsyncDisposable, Boolean)

Configure la façon dont les attentes sur les tâches retournées à partir d’un jetable asynchrone sont effectuées.

S’applique à