다음을 통해 공유


AnonymousPipeServerStream 생성자

정의

AnonymousPipeServerStream 클래스의 새 인스턴스를 초기화합니다.

오버로드

AnonymousPipeServerStream()

AnonymousPipeServerStream 클래스의 새 인스턴스를 초기화합니다.

AnonymousPipeServerStream(PipeDirection)

지정된 파이프 방향을 사용하여 AnonymousPipeServerStream 클래스의 새 인스턴스를 초기화합니다.

AnonymousPipeServerStream(PipeDirection, HandleInheritability)

지정된 파이프 방향 및 상속 모드를 사용하여 AnonymousPipeServerStream 클래스의 새 인스턴스를 초기화합니다.

AnonymousPipeServerStream(PipeDirection, SafePipeHandle, SafePipeHandle)

지정된 파이프 핸들을 사용하여 AnonymousPipeServerStream 클래스의 새 인스턴스를 초기화합니다.

AnonymousPipeServerStream(PipeDirection, HandleInheritability, Int32)

지정된 파이프 방향, 상속 모드 및 버퍼 크기를 사용하여 AnonymousPipeServerStream 클래스의 새 인스턴스를 초기화합니다.

AnonymousPipeServerStream(PipeDirection, HandleInheritability, Int32, PipeSecurity)

지정된 파이프 방향, 상속 모드, 버퍼 크기 및 파이프 보안을 사용하여 AnonymousPipeServerStream 클래스의 새 인스턴스를 초기화합니다.

AnonymousPipeServerStream()

Source:
AnonymousPipeServerStream.cs
Source:
AnonymousPipeServerStream.cs
Source:
AnonymousPipeServerStream.cs

AnonymousPipeServerStream 클래스의 새 인스턴스를 초기화합니다.

public:
 AnonymousPipeServerStream();
public AnonymousPipeServerStream ();
Public Sub New ()

설명

매개 변수가 PipeDirection 없는 생성자의 경우 AnonymousPipeServerStream 기본 방향은 입니다Out. PipeDirection 익명 파이프가 단방향으로 정의되므로 값 InOut 은 지원되지 않습니다.

이 생성자는 기본 버퍼 크기, 파이프 보안 및 값None이 인 개체를 HandleInheritability 만듭니다AnonymousPipeServerStream.

적용 대상

AnonymousPipeServerStream(PipeDirection)

Source:
AnonymousPipeServerStream.cs
Source:
AnonymousPipeServerStream.cs
Source:
AnonymousPipeServerStream.cs

지정된 파이프 방향을 사용하여 AnonymousPipeServerStream 클래스의 새 인스턴스를 초기화합니다.

public:
 AnonymousPipeServerStream(System::IO::Pipes::PipeDirection direction);
public AnonymousPipeServerStream (System.IO.Pipes.PipeDirection direction);
new System.IO.Pipes.AnonymousPipeServerStream : System.IO.Pipes.PipeDirection -> System.IO.Pipes.AnonymousPipeServerStream
Public Sub New (direction As PipeDirection)

매개 변수

direction
PipeDirection

파이프의 방향을 결정하는 열거형 값 중 하나입니다.

익명 파이프는 한 방향으로만 지정할 수 있으므로 directionInOut으로 설정할 수 없습니다.

예외

directionInOut로 설정됩니다.

설명

PipeDirection 익명 파이프가 단방향으로 정의되므로 값 InOut 은 지원되지 않습니다.

이 생성자는 기본 버퍼 크기, 파이프 보안 및 값None이 인 개체를 HandleInheritability 만듭니다AnonymousPipeServerStream.

적용 대상

AnonymousPipeServerStream(PipeDirection, HandleInheritability)

Source:
AnonymousPipeServerStream.cs
Source:
AnonymousPipeServerStream.cs
Source:
AnonymousPipeServerStream.cs

지정된 파이프 방향 및 상속 모드를 사용하여 AnonymousPipeServerStream 클래스의 새 인스턴스를 초기화합니다.

public:
 AnonymousPipeServerStream(System::IO::Pipes::PipeDirection direction, System::IO::HandleInheritability inheritability);
public AnonymousPipeServerStream (System.IO.Pipes.PipeDirection direction, System.IO.HandleInheritability inheritability);
new System.IO.Pipes.AnonymousPipeServerStream : System.IO.Pipes.PipeDirection * System.IO.HandleInheritability -> System.IO.Pipes.AnonymousPipeServerStream
Public Sub New (direction As PipeDirection, inheritability As HandleInheritability)

매개 변수

direction
PipeDirection

파이프의 방향을 결정하는 열거형 값 중 하나입니다.

익명 파이프는 한 방향으로만 지정할 수 있으므로 directionInOut으로 설정할 수 없습니다.

inheritability
HandleInheritability

자식 프로세스가 기본 핸들을 상속할 수 있는지 여부를 결정하는 열거형 값 중 하나입니다. None 또는 Inheritable로 설정해야 합니다.

예외

inheritabilityNone 또는 Inheritable로 설정되어 있지 않습니다.

directionInOut로 설정됩니다.

예제

다음 예제에서는 익명 파이프를 사용 하 여 자식 프로세스에 부모 프로세스에서 문자열을 보내는 메서드를 보여 줍니다. 이 예제에서는 AnonymousPipeServerStreamOut이 인 부모 프로세스에서 개체를 PipeDirection 만듭니다.

//<snippet01>
#using <System.dll>
#using <System.Core.dll>

using namespace System;
using namespace System::IO;
using namespace System::IO::Pipes;
using namespace System::Diagnostics;

ref class PipeServer
{
public:
    static void Main()
    {
        Process^ pipeClient = gcnew Process();

        pipeClient->StartInfo->FileName = "pipeClient.exe";

        AnonymousPipeServerStream^ pipeServer =
            gcnew AnonymousPipeServerStream(PipeDirection::Out,
            HandleInheritability::Inheritable);

        Console::WriteLine("[SERVER] Current TransmissionMode: {0}.",
            pipeServer->TransmissionMode);

        // Pass the client process a handle to the server.
        pipeClient->StartInfo->Arguments =
            pipeServer->GetClientHandleAsString();
        pipeClient->StartInfo->UseShellExecute = false;
        pipeClient->Start();

        pipeServer->DisposeLocalCopyOfClientHandle();

        try
        {
            // Read user input and send that to the client process.
            StreamWriter^ sw = gcnew StreamWriter(pipeServer);

            sw->AutoFlush = true;
            // Send a 'sync message' and wait for client to receive it.
            sw->WriteLine("SYNC");
            pipeServer->WaitForPipeDrain();
            // Send the console input to the client process.
            Console::Write("[SERVER] Enter text: ");
            sw->WriteLine(Console::ReadLine());
            sw->Close();
        }
        // Catch the IOException that is raised if the pipe is broken
        // or disconnected.
        catch (IOException^ e)
        {
            Console::WriteLine("[SERVER] Error: {0}", e->Message);
        }
        pipeServer->Close();
        pipeClient->WaitForExit();
        pipeClient->Close();
        Console::WriteLine("[SERVER] Client quit. Server terminating.");
    }
};

int main()
{
    PipeServer::Main();
}
//</snippet01>
//<snippet01>
using System;
using System.IO;
using System.IO.Pipes;
using System.Diagnostics;

class PipeServer
{
    static void Main()
    {
        Process pipeClient = new Process();

        pipeClient.StartInfo.FileName = "pipeClient.exe";

        using (AnonymousPipeServerStream pipeServer =
            new AnonymousPipeServerStream(PipeDirection.Out,
            HandleInheritability.Inheritable))
        {
            Console.WriteLine("[SERVER] Current TransmissionMode: {0}.",
                pipeServer.TransmissionMode);

            // Pass the client process a handle to the server.
            pipeClient.StartInfo.Arguments =
                pipeServer.GetClientHandleAsString();
            pipeClient.StartInfo.UseShellExecute = false;
            pipeClient.Start();

            pipeServer.DisposeLocalCopyOfClientHandle();

            try
            {
                // Read user input and send that to the client process.
                using (StreamWriter sw = new StreamWriter(pipeServer))
                {
                    sw.AutoFlush = true;
                    // Send a 'sync message' and wait for client to receive it.
                    sw.WriteLine("SYNC");
                    pipeServer.WaitForPipeDrain();
                    // Send the console input to the client process.
                    Console.Write("[SERVER] Enter text: ");
                    sw.WriteLine(Console.ReadLine());
                }
            }
            // Catch the IOException that is raised if the pipe is broken
            // or disconnected.
            catch (IOException e)
            {
                Console.WriteLine("[SERVER] Error: {0}", e.Message);
            }
        }

        pipeClient.WaitForExit();
        pipeClient.Close();
        Console.WriteLine("[SERVER] Client quit. Server terminating.");
    }
}
//</snippet01>
'<snippet01>
Imports System.IO
Imports System.IO.Pipes
Imports System.Diagnostics

Class PipeServer
    Shared Sub Main()
        Dim pipeClient As New Process()

        pipeClient.StartInfo.FileName = "pipeClient.exe"

        Using pipeServer As New AnonymousPipeServerStream(PipeDirection.Out, _
            HandleInheritability.Inheritable)

            Console.WriteLine("[SERVER] Current TransmissionMode: {0}.",
                pipeServer.TransmissionMode)

            ' Pass the client process a handle to the server.
            pipeClient.StartInfo.Arguments = pipeServer.GetClientHandleAsString()
            pipeClient.StartInfo.UseShellExecute = false
            pipeClient.Start()

            pipeServer.DisposeLocalCopyOfClientHandle()

            Try
                ' Read user input and send that to the client process.
                Using sw As New StreamWriter(pipeServer)
                    sw.AutoFlush = true
                    ' Send a 'sync message' and wait for client to receive it.
                    sw.WriteLine("SYNC")
                    pipeServer.WaitForPipeDrain()
                    ' Send the console input to the client process.
                    Console.Write("[SERVER] Enter text: ")
                    sw.WriteLine(Console.ReadLine())
                End Using
            Catch e As IOException
                ' Catch the IOException that is raised if the pipe is broken
                ' or disconnected.
                Console.WriteLine("[SERVER] Error: {0}", e.Message)
            End Try
        End Using

        pipeClient.WaitForExit()
        pipeClient.Close()
        Console.WriteLine("[SERVER] Client quit. Server terminating.")
    End Sub
End Class
'</snippet01>

설명

PipeDirection 익명 파이프가 단방향으로 정의되므로 값 InOut 은 지원되지 않습니다.

이 생성자는 기본 버퍼 크기와 파이프 보안이 없는 개체를 만듭니다 AnonymousPipeServerStream .

적용 대상

AnonymousPipeServerStream(PipeDirection, SafePipeHandle, SafePipeHandle)

Source:
AnonymousPipeServerStream.cs
Source:
AnonymousPipeServerStream.cs
Source:
AnonymousPipeServerStream.cs

지정된 파이프 핸들을 사용하여 AnonymousPipeServerStream 클래스의 새 인스턴스를 초기화합니다.

public:
 AnonymousPipeServerStream(System::IO::Pipes::PipeDirection direction, Microsoft::Win32::SafeHandles::SafePipeHandle ^ serverSafePipeHandle, Microsoft::Win32::SafeHandles::SafePipeHandle ^ clientSafePipeHandle);
public AnonymousPipeServerStream (System.IO.Pipes.PipeDirection direction, Microsoft.Win32.SafeHandles.SafePipeHandle serverSafePipeHandle, Microsoft.Win32.SafeHandles.SafePipeHandle clientSafePipeHandle);
[System.Security.SecurityCritical]
public AnonymousPipeServerStream (System.IO.Pipes.PipeDirection direction, Microsoft.Win32.SafeHandles.SafePipeHandle serverSafePipeHandle, Microsoft.Win32.SafeHandles.SafePipeHandle clientSafePipeHandle);
new System.IO.Pipes.AnonymousPipeServerStream : System.IO.Pipes.PipeDirection * Microsoft.Win32.SafeHandles.SafePipeHandle * Microsoft.Win32.SafeHandles.SafePipeHandle -> System.IO.Pipes.AnonymousPipeServerStream
[<System.Security.SecurityCritical>]
new System.IO.Pipes.AnonymousPipeServerStream : System.IO.Pipes.PipeDirection * Microsoft.Win32.SafeHandles.SafePipeHandle * Microsoft.Win32.SafeHandles.SafePipeHandle -> System.IO.Pipes.AnonymousPipeServerStream
Public Sub New (direction As PipeDirection, serverSafePipeHandle As SafePipeHandle, clientSafePipeHandle As SafePipeHandle)

매개 변수

direction
PipeDirection

파이프의 방향을 결정하는 열거형 값 중 하나입니다.

익명 파이프는 한 방향으로만 지정할 수 있으므로 directionInOut으로 설정할 수 없습니다.

serverSafePipeHandle
SafePipeHandle

AnonymousPipeServerStream 개체가 캡슐화할 파이프의 SafeHandle입니다.

clientSafePipeHandle
SafePipeHandle

AnonymousPipeClientStream 개체의 SafeHandle입니다.

특성

예외

serverSafePipeHandle또는 clientSafePipeHandle이 잘못된 핸들인 경우

serverSafePipeHandle 또는 clientSafePipeHandlenull인 경우

directionInOut로 설정됩니다.

디스크 오류 등의 I/O 오류가 발생한 경우

또는

스트림이 닫혔습니다.

설명

PipeDirection 익명 파이프가 단방향으로 정의되므로 값 InOut 은 지원되지 않습니다.

적용 대상

AnonymousPipeServerStream(PipeDirection, HandleInheritability, Int32)

Source:
AnonymousPipeServerStream.cs
Source:
AnonymousPipeServerStream.cs
Source:
AnonymousPipeServerStream.cs

지정된 파이프 방향, 상속 모드 및 버퍼 크기를 사용하여 AnonymousPipeServerStream 클래스의 새 인스턴스를 초기화합니다.

public:
 AnonymousPipeServerStream(System::IO::Pipes::PipeDirection direction, System::IO::HandleInheritability inheritability, int bufferSize);
public AnonymousPipeServerStream (System.IO.Pipes.PipeDirection direction, System.IO.HandleInheritability inheritability, int bufferSize);
[System.Security.SecurityCritical]
public AnonymousPipeServerStream (System.IO.Pipes.PipeDirection direction, System.IO.HandleInheritability inheritability, int bufferSize);
new System.IO.Pipes.AnonymousPipeServerStream : System.IO.Pipes.PipeDirection * System.IO.HandleInheritability * int -> System.IO.Pipes.AnonymousPipeServerStream
[<System.Security.SecurityCritical>]
new System.IO.Pipes.AnonymousPipeServerStream : System.IO.Pipes.PipeDirection * System.IO.HandleInheritability * int -> System.IO.Pipes.AnonymousPipeServerStream
Public Sub New (direction As PipeDirection, inheritability As HandleInheritability, bufferSize As Integer)

매개 변수

direction
PipeDirection

파이프의 방향을 결정하는 열거형 값 중 하나입니다.

익명 파이프는 한 방향으로만 지정할 수 있으므로 directionInOut으로 설정할 수 없습니다.

inheritability
HandleInheritability

자식 프로세스가 기본 핸들을 상속할 수 있는지 여부를 결정하는 열거형 값 중 하나입니다. None 또는 Inheritable로 설정해야 합니다.

bufferSize
Int32

버퍼의 크기입니다. 이 값은 0보다 크거나 같아야 합니다.

특성

예외

inheritabilityNone 또는 Inheritable로 설정되어 있지 않습니다.

또는

bufferSize 가 0보다 작습니다.

directionInOut로 설정됩니다.

설명

PipeDirection 익명 파이프가 단방향으로 정의되므로 값 InOut 은 지원되지 않습니다.

이 생성자는 파이프 보안 없이 개체를 AnonymousPipeServerStream 만듭니다.

적용 대상

AnonymousPipeServerStream(PipeDirection, HandleInheritability, Int32, PipeSecurity)

지정된 파이프 방향, 상속 모드, 버퍼 크기 및 파이프 보안을 사용하여 AnonymousPipeServerStream 클래스의 새 인스턴스를 초기화합니다.

public:
 AnonymousPipeServerStream(System::IO::Pipes::PipeDirection direction, System::IO::HandleInheritability inheritability, int bufferSize, System::IO::Pipes::PipeSecurity ^ pipeSecurity);
[System.Security.SecurityCritical]
public AnonymousPipeServerStream (System.IO.Pipes.PipeDirection direction, System.IO.HandleInheritability inheritability, int bufferSize, System.IO.Pipes.PipeSecurity pipeSecurity);
public AnonymousPipeServerStream (System.IO.Pipes.PipeDirection direction, System.IO.HandleInheritability inheritability, int bufferSize, System.IO.Pipes.PipeSecurity pipeSecurity);
[<System.Security.SecurityCritical>]
new System.IO.Pipes.AnonymousPipeServerStream : System.IO.Pipes.PipeDirection * System.IO.HandleInheritability * int * System.IO.Pipes.PipeSecurity -> System.IO.Pipes.AnonymousPipeServerStream
new System.IO.Pipes.AnonymousPipeServerStream : System.IO.Pipes.PipeDirection * System.IO.HandleInheritability * int * System.IO.Pipes.PipeSecurity -> System.IO.Pipes.AnonymousPipeServerStream
Public Sub New (direction As PipeDirection, inheritability As HandleInheritability, bufferSize As Integer, pipeSecurity As PipeSecurity)

매개 변수

direction
PipeDirection

파이프의 방향을 결정하는 열거형 값 중 하나입니다.

익명 파이프는 한 방향으로만 지정할 수 있으므로 directionInOut으로 설정할 수 없습니다.

inheritability
HandleInheritability

자식 프로세스가 기본 핸들을 상속할 수 있는지 여부를 결정하는 열거형 값 중 하나입니다.

bufferSize
Int32

버퍼의 크기입니다. 이 값은 0보다 크거나 같아야 합니다.

pipeSecurity
PipeSecurity

파이프의 액세스 제어 및 감사 보안을 결정하는 개체입니다.

특성

예외

inheritabilityNone 또는 Inheritable로 설정되어 있지 않습니다.

또는

bufferSize 가 0보다 작습니다.

directionInOut로 설정됩니다.

설명

PipeDirection 익명 파이프가 단방향으로 정의되므로 값 InOut 은 지원되지 않습니다.

적용 대상