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
継承
NamedPipeClientStream
継承
NamedPipeClientStream

次の例は、名前付きパイプを使用して、親プロセスから同じコンピューター上の子プロセスに文字列を送信する方法を示しています。 次の使用例は、親プロセスで NamedPipeServerStream オブジェクトを作成します。 NamedPipeServerStream オブジェクトの PipeDirection 値は Outです。その後、サーバーは、子プロセス内の 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

注釈

名前付きパイプは、パイプ サーバーと 1 つ以上のパイプ クライアント間の通信に一方向または二重パイプを提供します。 名前付きパイプは、ローカルまたはネットワーク経由のプロセス間通信に使用できます。 1 つのパイプ名を複数の 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()

現在の PipeStream オブジェクトによって記述されたパイプのアクセス制御リスト (ACL) エントリをカプセル化する PipeSecurity オブジェクトを取得します。

(継承元 PipeStream)
GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetLifetimeService()
古い.

このインスタンスの有効期間ポリシーを制御する現在の有効期間サービス オブジェクトを取得します。

(継承元 MarshalByRefObject)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
InitializeHandle(SafePipeHandle, Boolean, Boolean)

指定した SafePipeHandle オブジェクトから PipeStream オブジェクトを初期化します。

(継承元 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)

現在のストリーム count バイト数を読み取り、ストリーム内の位置を進めます。

(継承元 Stream)
ReadExactly(Span<Byte>)

現在のストリームからバイトを読み取り、buffer がいっぱいになるまでストリーム内の位置を進めます。

(継承元 Stream)
ReadExactlyAsync(Byte[], Int32, Int32, CancellationToken)

現在のストリーム count バイト数を非同期に読み取り、ストリーム内の位置を進め、キャンセル要求を監視します。

(継承元 Stream)
ReadExactlyAsync(Memory<Byte>, CancellationToken)

現在のストリームからバイトを非同期に読み取り、buffer がいっぱいになるまでストリーム内の位置を進め、取り消し要求を監視します。

(継承元 Stream)
Seek(Int64, SeekOrigin)

現在のストリームの現在位置を指定した値に設定します。

(継承元 PipeStream)
SetAccessControl(PipeSecurity)

PipeSecurity オブジェクトで指定されたアクセス制御リスト (ACL) エントリを、現在の 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)

非同期破棄から返されるタスクの待機を実行する方法を構成します。

適用対象