NamedPipeClientStream クラス

定義

同期および非同期の読み書き操作をサポートする名前付きパイプに関連する Stream を公開します。Exposes a Stream around a named pipe, which supports both synchronous and asynchronous read and write operations.

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

次の例は、名前付きパイプを使用して、同じコンピューター上の親プロセスから子プロセスに文字列を送信する方法を示しています。The following example demonstrates a way to send a string from a parent process to a child process on the same computer using named pipes. この例では、親プロセスに NamedPipeServerStream オブジェクトを作成します。This example creates a NamedPipeServerStream object in a parent process. NamedPipeServerStream オブジェクトの PipeDirection の値は Outです。The NamedPipeServerStream object has a PipeDirection value of Out. サーバーは、子プロセス内の NamedPipeClientStream オブジェクトが接続するのを待機します。The server then waits for a NamedPipeClientStream object in a child process to connect to it. この例では、両方のプロセスが同じコンピューター上にあり、NamedPipeClientStream オブジェクトの PipeDirection の値が Inになっています。In this example, both processes are on the same computer and the NamedPipeClientStream object has a PipeDirection value of In. 次に、親プロセスはユーザー指定の文字列を子プロセスに送信します。The parent process then sends a user-supplied string to the child process. 文字列がコンソールに表示されます。The string is displayed to the console.

この例は、サーバープロセスに接続するクライアントプロセス用です。This example is for the client process, which connects to the server process. パイプクライアントとサーバーの両方のコードを含むコードサンプル全体については、「方法: ネットワークプロセス間通信に名前付きパイプを使用する」を参照してください。For the entire code sample, including the code for both the pipe client and server, see How to: Use Named Pipes for Network Interprocess Communication.

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つ以上のパイプクライアントの間の通信に対して一方向または双方向のパイプを提供します。Named pipes provide one-way or duplex pipes for communication between a pipe server and one or more pipe clients. 名前付きパイプは、ローカルまたはネットワーク経由のプロセス間通信に使用できます。Named pipes can be used for interprocess communication locally or over a network. 1つのパイプ名を複数の NamedPipeClientStream オブジェクトで共有できます。A single pipe name can be shared by multiple NamedPipeClientStream objects.

任意のプロセスを名前付きパイプサーバーまたはクライアントのいずれかまたは両方として動作させることができます。Any process can act as either a named pipe server or client, or both.

コンストラクター

NamedPipeClientStream(PipeDirection, Boolean, Boolean, SafePipeHandle)

指定したパイプの方向を使用して、指定したパイプ ハンドルの NamedPipeClientStream クラスの新しいインスタンスを初期化します。Initializes a new instance of the NamedPipeClientStream class for the specified pipe handle with the specified pipe direction.

NamedPipeClientStream(String)

指定したパイプ名を使用して NamedPipeClientStream クラスの新しいインスタンスを初期化します。Initializes a new instance of the NamedPipeClientStream class with the specified pipe name.

NamedPipeClientStream(String, String)

指定したパイプ名とサーバー名を使用して、NamedPipeClientStream クラスの新しいインスタンスを初期化します。Initializes a new instance of the NamedPipeClientStream class with the specified pipe and server names.

NamedPipeClientStream(String, String, PipeAccessRights, PipeOptions, TokenImpersonationLevel, HandleInheritability)

パイプ名、サーバー名、パイプのオプション、セキュリティ偽装レベル、および継承性のモードを指定して、NamedPipeClientStream クラスの新しいインスタンスを初期化します。Initializes a new instance of the NamedPipeClientStream class with the specified pipe and server names, and the specified pipe options, security impersonation level, and inheritability mode.

NamedPipeClientStream(String, String, PipeDirection)

パイプ名、サーバー名、およびパイプの方向を指定して、NamedPipeClientStream クラスの新しいインスタンスを初期化します。Initializes a new instance of the NamedPipeClientStream class with the specified pipe and server names, and the specified pipe direction.

NamedPipeClientStream(String, String, PipeDirection, PipeOptions)

パイプ名、サーバー名、パイプの方向、およびパイプのオプションを指定して、NamedPipeClientStream クラスの新しいインスタンスを初期化します。Initializes a new instance of the NamedPipeClientStream class with the specified pipe and server names, and the specified pipe direction and pipe options.

NamedPipeClientStream(String, String, PipeDirection, PipeOptions, TokenImpersonationLevel)

パイプ名、サーバー名、パイプの方向、パイプのオプション、およびセキュリティ偽装レベルを指定して、NamedPipeClientStream クラスの新しいインスタンスを初期化します。Initializes a new instance of the NamedPipeClientStream class with the specified pipe and server names, and the specified pipe direction, pipe options, and security impersonation level.

NamedPipeClientStream(String, String, PipeDirection, PipeOptions, TokenImpersonationLevel, HandleInheritability)

パイプ名、サーバー名、パイプの方向、パイプのオプション、セキュリティ偽装レベル、および継承性のモードを指定して、NamedPipeClientStream クラスの新しいインスタンスを初期化します。Initializes a new instance of the NamedPipeClientStream class with the specified pipe and server names, and the specified pipe direction, pipe options, security impersonation level, and inheritability mode.

プロパティ

CanRead

現在のストリームが読み取り操作をサポートしているかどうかを示す値を取得します。Gets a value indicating whether the current stream supports read operations.

(継承元 PipeStream)
CanSeek

現在のストリームがシーク操作をサポートしているかどうかを示す値を取得します。Gets a value indicating whether the current stream supports seek operations.

(継承元 PipeStream)
CanTimeout

現在のストリームがタイムアウトできるかどうかを決定する値を取得します。Gets a value that determines whether the current stream can time out.

(継承元 Stream)
CanWrite

現在のストリームが書き込み操作をサポートしているかどうかを示す値を取得します。Gets a value indicating whether the current stream supports write operations.

(継承元 PipeStream)
InBufferSize

パイプの着信バッファーのサイズ (バイト単位) を取得します。Gets the size, in bytes, of the inbound buffer for a pipe.

(継承元 PipeStream)
IsAsync

PipeStream オブジェクトが非同期的に開かれたか、同期的に開かれたかを示す値を取得します。Gets a value indicating whether a PipeStream object was opened asynchronously or synchronously.

(継承元 PipeStream)
IsConnected

PipeStream オブジェクトが接続されているかどうかを示す値を取得または設定します。Gets or sets a value indicating whether a PipeStream object is connected.

(継承元 PipeStream)
IsHandleExposed

PipeStream オブジェクトのハンドルが公開されているかどうかを示す値を取得します。Gets a value indicating whether a handle to a PipeStream object is exposed.

(継承元 PipeStream)
IsMessageComplete

最後に実行された読み取り操作から返されたメッセージに他のデータが存在するかどうかを示す値を取得します。Gets a value indicating whether there is more data in the message returned from the most recent read operation.

(継承元 PipeStream)
Length

ストリーム長 (バイト単位) を取得します。Gets the length of a stream, in bytes.

(継承元 PipeStream)
NumberOfServerInstances

同じパイプ名を共有するサーバー インスタンス数を取得します。Gets the number of server instances that share the same pipe name.

OutBufferSize

パイプの発信バッファーのサイズ (バイト単位) を取得します。Gets the size, in bytes, of the outbound buffer for a pipe.

(継承元 PipeStream)
Position

現在のストリームの現在位置を取得または設定します。Gets or sets the current position of the current stream.

(継承元 PipeStream)
ReadMode

PipeStream オブジェクトの読み取りモードを取得または設定します。Gets or sets the reading mode for a PipeStream object.

(継承元 PipeStream)
ReadTimeout

ストリームがタイムアウト前に読み取りを試みる期間を決定する値 (ミリ秒単位) を取得または設定します。Gets or sets a value, in milliseconds, that determines how long the stream will attempt to read before timing out.

(継承元 Stream)
SafePipeHandle

現在の PipeStream オブジェクトによってカプセル化されるパイプのローカルの終端のセーフ ハンドルを取得します。Gets the safe handle for the local end of the pipe that the current PipeStream object encapsulates.

(継承元 PipeStream)
TransmissionMode

現在のパイプでサポートされるパイプ送信モードを取得します。Gets the pipe transmission mode supported by the current pipe.

(継承元 PipeStream)
WriteTimeout

ストリームがタイムアウト前に書き込みを試行する期間を決定する値 (ミリ秒単位) を取得または設定します。Gets or sets a value, in milliseconds, that determines how long the stream will attempt to write before timing out.

(継承元 Stream)

メソッド

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

非同期の読み込み動作を開始します。Begins an asynchronous read operation.

(継承元 PipeStream)
BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object)

非同期の書き込み操作を開始します。Begins an asynchronous write operation.

(継承元 PipeStream)
CheckPipePropertyOperations()

パイプがプロパティの取得または設定に対して適切な状態にあることを確認します。Verifies that the pipe is in a proper state for getting or setting properties.

(継承元 PipeStream)
CheckReadOperations()

パイプが読み取り操作に対して接続状態にあることを確認します。Verifies that the pipe is in a connected state for read operations.

(継承元 PipeStream)
CheckWriteOperations()

パイプが書き込み操作に対して接続状態にあることを確認します。Verifies that the pipe is in a connected state for write operations.

(継承元 PipeStream)
Close()

現在のストリームを閉じ、現在のストリームに関連付けられているすべてのリソース (ソケット、ファイル ハンドルなど) を解放します。Closes the current stream and releases any resources (such as sockets and file handles) associated with the current stream. このメソッドを呼び出す代わりに、ストリームが適切に破棄されていることを確認します。Instead of calling this method, ensure that the stream is properly disposed.

(継承元 Stream)
Connect()

無限のタイムアウト値で待機中のサーバーに接続します。Connects to a waiting server with an infinite time-out value.

Connect(Int32)

指定したタイムアウト期限内に、待機中のサーバーに接続します。Connects to a waiting server within the specified time-out period.

ConnectAsync()

無限のタイムアウト時間で待機中のサーバーに非同期接続します。Asynchronously connects to a waiting server with an infinite timeout period.

ConnectAsync(CancellationToken)

待機中のサーバーに非同期接続し、キャンセル要求を監視します。Asynchronously connects to a waiting server and monitors cancellation requests.

ConnectAsync(Int32)

指定したタイムアウト時間内に待機中のサーバーに非同期接続します。Asynchronously connects to a waiting server within the specified timeout period.

ConnectAsync(Int32, CancellationToken)

指定したタイムアウト時間内に待機中のサーバーに非同期接続し、キャンセル要求を監視します。Asynchronously connects to a waiting server within the specified timeout period and monitors cancellation requests.

CopyTo(ReadOnlySpanAction<Byte,Object>, Object, Int32) (継承元 Stream)
CopyTo(Stream)

現在のストリームからバイトを読み取り、別のストリームに書き込みます。Reads the bytes from the current stream and writes them to another stream.

(継承元 Stream)
CopyTo(Stream, Int32)

指定されたバッファー サイズを使用して、現在のストリームからバイトを読み取り、別のストリームに書き込みます。Reads the bytes from the current stream and writes them to another stream, using a specified buffer size.

(継承元 Stream)
CopyToAsync(Func<ReadOnlyMemory<Byte>,Object,CancellationToken,ValueTask>, Object, Int32, CancellationToken) (継承元 Stream)
CopyToAsync(Stream)

現在のストリームからすべてのバイトを非同期に読み取り、別のストリームに書き込みます。Asynchronously reads the bytes from the current stream and writes them to another stream.

(継承元 Stream)
CopyToAsync(Stream, CancellationToken)

指定されたバッファー サイズを使用して、現在のストリームからバイトを非同期に読み取り、指定されたキャンセル トークンを使用して、別のストリームに書き込みます。Asynchronously reads the bytes from the current stream and writes them to another stream, using a specified cancellation token.

(継承元 Stream)
CopyToAsync(Stream, Int32)

指定されたバッファー サイズを使用して、現在のストリームからバイトを非同期に読み取り、別のストリームに書き込みます。Asynchronously reads the bytes from the current stream and writes them to another stream, using a specified buffer size.

(継承元 Stream)
CopyToAsync(Stream, Int32, CancellationToken)

指定されたバッファー サイズを使用して、現在のストリームからバイトを非同期に読み取り、指定されたバッファー サイズとキャンセル トークンを使用して、別のストリームに書き込みます。Asynchronously reads the bytes from the current stream and writes them to another stream, using a specified buffer size and cancellation token.

(継承元 Stream)
CreateObjRef(Type)

リモート オブジェクトとの通信に使用するプロキシの生成に必要な情報をすべて格納しているオブジェクトを作成します。Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.

(継承元 MarshalByRefObject)
CreateWaitHandle()

WaitHandle オブジェクトを割り当てます。Allocates a WaitHandle object.

(継承元 Stream)
Dispose()

Stream で使用されるすべてのリソースを解放します。Releases all resources used by the Stream.

(継承元 Stream)
Dispose(Boolean)

PipeStream クラスによって使用されているアンマネージド リソースを解放し、オプションでマネージド リソースも解放します。Releases the unmanaged resources used by the PipeStream class and optionally releases the managed resources.

(継承元 PipeStream)
DisposeAsync()

Stream によって使用されているアンマネージ リソースを非同期に解放します。Asynchronously releases the unmanaged resources used by the Stream.

(継承元 Stream)
EndRead(IAsyncResult)

非同期読み込み要求の保留状態を終了します。Ends a pending asynchronous read request.

(継承元 PipeStream)
EndWrite(IAsyncResult)

保留中の非同期書き込み要求を終了します。Ends a pending asynchronous write request.

(継承元 PipeStream)
Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判定します。Determines whether the specified object is equal to the current object.

(継承元 Object)
Finalize()

NamedPipeClientStream インスタンスがガベージ コレクションによって回収される前に、アンマネージ リソースを解放し、その他のクリーンアップ操作を実行します。Releases unmanaged resources and performs other cleanup operations before the NamedPipeClientStream instance is reclaimed by garbage collection.

Flush()

現在のストリームに対応するバッファーをクリアし、バッファー内のすべてのデータを、基になるデバイスに書き込みます。Clears the buffer for the current stream and causes any buffered data to be written to the underlying device.

(継承元 PipeStream)
FlushAsync()

ストリームに対応するすべてのバッファーを非同期にクリアし、バッファー内のデータを基になるデバイスに書き込みます。Asynchronously clears all buffers for this stream and causes any buffered data to be written to the underlying device.

(継承元 Stream)
FlushAsync(CancellationToken) (継承元 PipeStream)
GetAccessControl()

現在の PipeSecurity オブジェクトが示すパイプのアクセス制御リスト (ACL) エントリをカプセル化する PipeStream オブジェクトを取得します。Gets a PipeSecurity object that encapsulates the access control list (ACL) entries for the pipe described by the current PipeStream object.

(継承元 PipeStream)
GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(継承元 Object)
GetLifetimeService()

対象のインスタンスの有効期間ポリシーを制御する、現在の有効期間サービス オブジェクトを取得します。Retrieves the current lifetime service object that controls the lifetime policy for this instance.

(継承元 MarshalByRefObject)
GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

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

指定した PipeStream オブジェクトから、SafePipeHandle オブジェクトを初期化します。Initializes a PipeStream object from the specified SafePipeHandle object.

(継承元 PipeStream)
InitializeLifetimeService()

このインスタンスの有効期間ポリシーを制御する有効期間サービス オブジェクトを取得します。Obtains a lifetime service object to control the lifetime policy for this instance.

(継承元 MarshalByRefObject)
MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(継承元 Object)
MemberwiseClone(Boolean)

現在の MarshalByRefObject オブジェクトの簡易コピーを作成します。Creates a shallow copy of the current MarshalByRefObject object.

(継承元 MarshalByRefObject)
ObjectInvariant()

Contract のサポートを提供します。Provides support for a Contract.

(継承元 Stream)
Read(Byte[], Int32, Int32)

ストリームからバイトのブロックを読み取り、指定した長さの指定した位置を開始位置として、指定したバッファーにデータを書き込みます。Reads a block of bytes from a stream and writes the data to a specified buffer starting at a specified position for a specified length.

(継承元 PipeStream)
Read(Span<Byte>)

現在のストリームからバイト シーケンスを読み取り、バイト配列に書き込んで、読み取ったバイト数だけストリーム内の位置を進めます。Reads a sequence of bytes from the current stream, writes them to a byte array, and advances the position within the stream by the number of bytes read.

(継承元 PipeStream)
ReadAsync(Byte[], Int32, Int32)

現在のストリームからバイト シーケンスを非同期に読み取り、読み取ったバイト数だけストリーム内の位置を進めます。Asynchronously reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read.

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

現在のストリームからバイト シーケンスを、指定したバイト数の指定した位置を開始位置としてバイト配列に非同期に読み取り、読み取ったバイト数だけストリーム内の位置を進め、キャンセル要求を監視します。Asynchronously reads a sequence of bytes from the current stream to a byte array starting at a specified position for a specified number of bytes, advances the position within the stream by the number of bytes read, and monitors cancellation requests.

(継承元 PipeStream)
ReadAsync(Memory<Byte>, CancellationToken)

現在のストリームからバイト シーケンスを非同期に読み取り、バイト メモリの範囲に書き込んで、読み取ったバイト数だけストリーム内の位置を進め、キャンセル要求を監視します。Asynchronously reads a sequence of bytes from the current stream, writes them to a byte memory range, advances the position within the stream by the number of bytes read, and monitors cancellation requests.

(継承元 PipeStream)
ReadByte()

パイプからバイトを読み取ります。Reads a byte from a pipe.

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

現在のストリームの現在位置を、指定した値に設定します。Sets the current position of the current stream to the specified value.

(継承元 PipeStream)
SetAccessControl(PipeSecurity)

PipeSecurity オブジェクトで指定されたアクセス制御リスト (ACL) エントリを、現在の PipeStream オブジェクトで指定されたパイプに適用します。Applies the access control list (ACL) entries specified by a PipeSecurity object to the pipe specified by the current PipeStream object.

(継承元 PipeStream)
SetLength(Int64)

現在のストリーム長を指定した値に設定します。Sets the length of the current stream to the specified value.

(継承元 PipeStream)
ToString()

現在のオブジェクトを表す string を返します。Returns a string that represents the current object.

(継承元 Object)
WaitForPipeDrain()

パイプのもう一方の終端が、送信されたすべてのバイトを読み取るまで待機します。Waits for the other end of the pipe to read all sent bytes.

(継承元 PipeStream)
Write(Byte[], Int32, Int32)

バッファーのデータを使用して、現在のストリームにバイトのブロックを書き込みます。Writes a block of bytes to the current stream using data from a buffer.

(継承元 PipeStream)
Write(ReadOnlySpan<Byte>)

現在のストリームにバイト シーケンスを書き込み、書き込んだバイト数だけストリーム内の現在位置を進めます。Writes a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written.

(継承元 PipeStream)
WriteAsync(Byte[], Int32, Int32)

現在のストリームにバイト シーケンスを非同期に書き込み、書き込んだバイト数だけストリーム内の現在位置を進めます。Asynchronously writes a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written.

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

指定した位置を開始位置としてバイト配列から指定したバイト数を非同期に書き込み、書き込んだバイト数だけこのストリーム内の現在の位置を進め、キャンセル要求を監視します。Asynchronously writes a specified number of bytes from a byte array starting at a specified position, advances the current position within this stream by the number of bytes written, and monitors cancellation requests.

(継承元 PipeStream)
WriteAsync(ReadOnlyMemory<Byte>, CancellationToken)

現在のストリームにバイト シーケンスを非同期に書き込み、書き込んだバイト数だけストリーム内の現在位置を進め、キャンセル要求を監視します。Asynchronously writes a sequence of bytes to the current stream, advances the current position within this stream by the number of bytes written, and monitors cancellation requests.

(継承元 PipeStream)
WriteByte(Byte)

現在のストリームにバイトを書き込みます。Writes a byte to the current stream.

(継承元 PipeStream)

明示的なインターフェイスの実装

IDisposable.Dispose()

Stream で使用されるすべてのリソースを解放します。Releases all resources used by the Stream.

(継承元 Stream)

拡張メソッド

GetAccessControl(PipeStream)

パイプ ストリームのセキュリティ情報を返します。Returns the security information of a pipe stream.

SetAccessControl(PipeStream, PipeSecurity)

既存のパイプ ストリームのセキュリティ属性を変更します。Changes the security attributes of an existing pipe stream.

適用対象