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

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

注釈

名前付きパイプは、パイプ サーバーと 1 つ以上のパイプ クライアント間の通信に一方向または二重パイプを提供します。 名前付きパイプは、ローカルまたはネットワーク経由のプロセス間通信に使用できます。 1 つのパイプ名を複数 NamedPipeClientStream のオブジェクトで共有できます。

任意のプロセスは、名前付きパイプ サーバーまたはクライアント、またはその両方として機能できます。

コンストラクター

NamedPipeServerStream(PipeDirection, Boolean, Boolean, SafePipeHandle)

パイプ ハンドルを指定して NamedPipeServerStream クラスの新しいインスタンスを初期化します。

NamedPipeServerStream(String)

指定したパイプ名を使用して NamedPipeServerStream クラスの新しいインスタンスを初期化します。

NamedPipeServerStream(String, PipeDirection)

指定したパイプ名とパイプの方向を使用して、NamedPipeServerStream クラスの新しいインスタンスを初期化します。

NamedPipeServerStream(String, PipeDirection, Int32)

指定したパイプ名、パイプの方向、およびサーバー インスタンスの最大数を使用して、NamedPipeServerStream クラスの新しいインスタンスを初期化します。

NamedPipeServerStream(String, PipeDirection, Int32, PipeTransmissionMode)

指定したパイプ名、パイプの方向、サーバー インスタンスの最大数、および送信モードを使用して、NamedPipeServerStream クラスの新しいインスタンスを初期化します。

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

指定したパイプ名、パイプの方向、サーバー インスタンスの最大数、送信モード、およびパイプのオプションを使用して、NamedPipeServerStream クラスの新しいインスタンスを初期化します。

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

指定したパイプ名、パイプの方向、サーバー インスタンスの最大数、送信モード、パイプのオプション、および推奨される入力バッファー サイズと出力バッファー サイズを使用して、NamedPipeServerStream クラスの新しいインスタンスを初期化します。

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

指定したパイプ名、パイプの方向、サーバー インスタンスの最大数、送信モード、パイプのオプション、推奨される入力バッファー サイズと出力バッファー サイズ、およびパイプのセキュリティ保護を使用して、NamedPipeServerStream クラスの新しいインスタンスを初期化します。

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

指定したパイプ名、パイプの方向、サーバー インスタンスの最大数、送信モード、パイプのオプション、推奨される入力バッファー サイズと出力バッファー サイズ、パイプのセキュリティ保護、および継承性のモードを使用して、NamedPipeServerStream クラスの新しいインスタンスを初期化します。

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

指定したパイプ名、パイプの方向、サーバー インスタンスの最大数、送信モード、パイプのオプション、推奨される入力バッファー サイズと出力バッファー サイズ、パイプのセキュリティ保護、継承性のモード、およびパイプのアクセス権を使用して、NamedPipeServerStream クラスの新しいインスタンスを初期化します。

フィールド

MaxAllowedServerInstances

システム リソースで許されるサーバー インスタンスの最大数を表します。

プロパティ

CanRead

現在のストリームが読み取り操作をサポートしているかどうかを示す値を取得します。

(継承元 PipeStream)
CanSeek

現在のストリームがシーク操作をサポートしているかどうかを示す値を取得します。

(継承元 PipeStream)
CanTimeout

現在のストリームがタイムアウトできるかどうかを決定する値を取得します。

(継承元 Stream)
CanWrite

現在のストリームが書き込み操作をサポートしているかどうかを示す値を取得します。

(継承元 PipeStream)
InBufferSize

パイプの着信バッファーのサイズ (バイト単位) を取得します。

(継承元 PipeStream)
IsAsync

PipeStream オブジェクトが非同期的に開かれたか、同期的に開かれたかを示す値を取得します。

(継承元 PipeStream)
IsConnected

PipeStream オブジェクトが接続されているかどうかを示す値を取得または設定します。

(継承元 PipeStream)
IsHandleExposed

PipeStream オブジェクトのハンドルが公開されているかどうかを示す値を取得します。

(継承元 PipeStream)
IsMessageComplete

最後に実行された読み取り操作から返されたメッセージに他のデータが存在するかどうかを示す値を取得します。

(継承元 PipeStream)
Length

ストリーム長 (バイト単位) を取得します。

(継承元 PipeStream)
OutBufferSize

パイプの発信バッファーのサイズ (バイト単位) を取得します。

(継承元 PipeStream)
Position

現在のストリームの現在位置を取得または設定します。

(継承元 PipeStream)
ReadMode

PipeStream オブジェクトの読み取りモードを取得または設定します。

(継承元 PipeStream)
ReadTimeout

ストリームがタイムアウト前に読み取りを試みる期間を決定する値 (ミリ秒単位) を取得または設定します。

(継承元 Stream)
SafePipeHandle

現在の PipeStream オブジェクトによってカプセル化されるパイプのローカルの終端のセーフ ハンドルを取得します。

(継承元 PipeStream)
TransmissionMode

現在のパイプでサポートされるパイプ送信モードを取得します。

(継承元 PipeStream)
WriteTimeout

ストリームがタイムアウト前に書き込みを試行する期間を決定する値 (ミリ秒単位) を取得または設定します。

(継承元 Stream)

メソッド

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

非同期の読み込み動作を開始します。

(継承元 PipeStream)
BeginWaitForConnection(AsyncCallback, Object)

クライアントが接続するのを待機する非同期操作を開始します。

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

非同期の書き込み操作を開始します。

(継承元 PipeStream)
CheckPipePropertyOperations()

パイプがプロパティの取得または設定に対して適切な状態にあることを確認します。

(継承元 PipeStream)
CheckReadOperations()

パイプが読み取り操作に対して接続状態にあることを確認します。

(継承元 PipeStream)
CheckWriteOperations()

パイプが書き込み操作に対して接続状態にあることを確認します。

(継承元 PipeStream)
Close()

現在のストリームを閉じ、現在のストリームに関連付けられているすべてのリソース (ソケット、ファイル ハンドルなど) を解放します。 このメソッドを呼び出す代わりに、ストリームが適切に破棄されていることを確認します。

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

現在の接続を切断します。

Dispose()

Stream によって使用されているすべてのリソースを解放します。

(継承元 Stream)
Dispose(Boolean)

PipeStream クラスによって使用されているアンマネージド リソースを解放し、オプションでマネージド リソースも解放します。

(継承元 PipeStream)
DisposeAsync()

Stream によって使用されているアンマネージ リソースを非同期に解放します。

(継承元 Stream)
EndRead(IAsyncResult)

非同期読み込み要求の保留状態を終了します。

(継承元 PipeStream)
EndWaitForConnection(IAsyncResult)

クライアントが接続するのを待機する非同期操作を終了します。

EndWrite(IAsyncResult)

保留中の非同期書き込み要求を終了します。

(継承元 PipeStream)
Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
Finalize()

NamedPipeServerStream インスタンスがガベージ コレクションによって回収される前に、アンマネージ リソースを解放し、その他のクリーンアップ操作を実行します。

Flush()

現在のストリームに対応するバッファーをクリアし、バッファー内のすべてのデータを、基になるデバイスに書き込みます。

(継承元 PipeStream)
FlushAsync()

ストリームに対応するすべてのバッファーを非同期にクリアし、バッファー内のデータを基になるデバイスに書き込みます。

(継承元 Stream)
FlushAsync(CancellationToken)

現在のストリームに対するバッファーを非同期にクリアし、バッファー内のすべてのデータを基になるデバイスに書き込みます。

(継承元 PipeStream)
GetAccessControl()

現在の PipeStream オブジェクトが示すパイプのアクセス制御リスト (ACL) エントリをカプセル化する PipeSecurity オブジェクトを取得します。

(継承元 PipeStream)
GetHashCode()

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

(継承元 Object)
GetImpersonationUserName()

パイプのもう一方の終端のクライアントのユーザー名を取得します。

GetLifetimeService()
古い.

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

(継承元 MarshalByRefObject)
GetType()

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

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

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

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

クライアントの偽装中にデリゲートを呼び出します。

Seek(Int64, SeekOrigin)

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

(継承元 PipeStream)
SetAccessControl(PipeSecurity)

PipeSecurity オブジェクトで指定されたアクセス制御リスト (ACL) エントリを、現在の PipeStream オブジェクトで指定されたパイプに適用します。

(継承元 PipeStream)
SetLength(Int64)

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

(継承元 PipeStream)
ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)
WaitForConnection()

クライアントがこの NamedPipeServerStream オブジェクトに接続するのを待機します。

WaitForConnectionAsync()

クライアントがこの NamedPipeServerStream オブジェクトに接続するのを非同期に待機します。

WaitForConnectionAsync(CancellationToken)

クライアントがこの NamedPipeServerStream オブジェクトに接続するのを非同期に待機し、キャンセル要求を監視します。

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)

拡張メソッド

GetAccessControl(PipeStream)

パイプ ストリームのセキュリティ情報を返します。

SetAccessControl(PipeStream, PipeSecurity)

既存のパイプ ストリームのセキュリティ属性を変更します。

ConfigureAwait(IAsyncDisposable, Boolean)

非同期の破棄可能から返されるタスク上での待機がどのように実行されるかを構成します。

適用対象