다음을 통해 공유


IpcServerChannel 클래스

정의

IPC 시스템을 사용하여 메시지를 전송하는 원격 호출용 서버 채널을 구현합니다.

public ref class IpcServerChannel : System::Runtime::Remoting::Channels::IChannelReceiver, System::Runtime::Remoting::Channels::ISecurableChannel
public class IpcServerChannel : System.Runtime.Remoting.Channels.IChannelReceiver, System.Runtime.Remoting.Channels.ISecurableChannel
type IpcServerChannel = class
    interface IChannelReceiver
    interface IChannel
    interface ISecurableChannel
Public Class IpcServerChannel
Implements IChannelReceiver, ISecurableChannel
상속
IpcServerChannel
구현

예제

다음 코드 예제를 사용 하는 방법을 보여 줍니다는 IpcServerChannel 클래스입니다.

#using <system.runtime.remoting.dll>
#using <System.dll>
#using <Counter.dll>

using namespace System;
using namespace System::Runtime::Remoting;
using namespace System::Runtime::Remoting::Channels;
using namespace System::Runtime::Remoting::Channels::Ipc;

public ref class IpcServer
{
public:
   void IpcServerTest()
   {
      // Create and register an IPC channel
      IpcServerChannel^ serverChannel = gcnew IpcServerChannel( L"remote" );
      ChannelServices::RegisterChannel( serverChannel );

      // Expose an object
      RemotingConfiguration::RegisterWellKnownServiceType( Counter::typeid, L"counter", WellKnownObjectMode::Singleton );
      
      // Wait for calls
      Console::WriteLine( L"Listening on {0}", serverChannel->GetChannelUri() );

      Console::ReadLine();
   }
};

int main()
{
   IpcServer^ is = gcnew IpcServer;
   is->IpcServerTest();
}
using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Ipc;

public class IpcServer
{

    public static void Main ()
    {
        // Create and register an IPC channel
        IpcServerChannel serverChannel = new IpcServerChannel("remote");
        ChannelServices.RegisterChannel(serverChannel);

        // Expose an object
        RemotingConfiguration.RegisterWellKnownServiceType( typeof(Counter), "counter", WellKnownObjectMode.Singleton );

        // Wait for calls
        Console.WriteLine("Listening on {0}", serverChannel.GetChannelUri());
        Console.ReadLine();
    }
}

위의 코드는 다음과 같은 원격 개체를 노출 됩니다.

using namespace System;
public ref class Counter: public MarshalByRefObject
{
private:
   int count;

public:
   Counter()
   {
      count = 0;
   }

   property int Count 
   {
      int get()
      {
         return (count)++;
      }
   }
};
using System;

public class Counter : MarshalByRefObject {

  private int count = 0;

  public int Count { get {
    return(count++);
  } }
}

이 개체를 원격으로 사용 하는 클라이언트의 예제를 참조 하세요. IpcClientChannel합니다.

설명

중요

신뢰할 수 없는 데이터로 이 클래스에서 메서드를 호출하는 것은 보안상 위험합니다. 신뢰할 수 있는 데이터로만 이 클래스에서 메서드를 호출하세요. 자세한 내용은 모든 입력 유효성 검사를 참조하세요.

채널은 원격 호출을 전송 하는.NET Framework remoting 인프라에서 사용 됩니다. 클라이언트가 원격 개체를 호출 하면 호출 클라이언트 채널에서 전송 및 서버 채널에서 수신 되는 메시지로 serialize 됩니다. 메시지를 받은 후 역직렬화하 처리 합니다. 반환 된 값 서버 채널에서 전송 되며 클라이언트 채널에서 수신 됩니다.

IpcServerChannel 클래스는 동일한 컴퓨터에 애플리케이션 도메인 간에 메시지를 전송 Windows 프로세스 간 통신 (IPC) 시스템을 사용 합니다. 와 동일한 컴퓨터에 애플리케이션 도메인 간에 통신 하는 경우 IPC 채널은 TCP 또는 HTTP 채널 보다 훨씬 빠릅니다.

서버 쪽에서 메시지의 추가 처리를 수행 하려면의 구현을 지정 합니다 IServerChannelSinkProvider 인터페이스에 의해 처리 되는 모든 메시지는 IpcServerChannel 인스턴스가 전달 됩니다.

IpcServerChannel 인스턴스 이진 또는 SOAP 형식으로 직렬화 하는 메시지를 수락 합니다.

IpcServerChannel 개체에 설정할 수 있는 구성 속성을 연결 된 런타임 구성 파일에서 (정적 호출 하 여 RemotingConfiguration.Configure 메서드) 또는 프로그래밍 방식으로 (전달 하 여는 IDictionary 컬렉션을 IpcServerChannel 생성자)입니다. 목록은 이러한 구성 속성에 대 한 설명서를 참조 합니다 IpcServerChannel 생성자입니다.

주의

설정 하는 경우는 exclusiveAddressUse 속성을 falseproperties 인수를 여러 IpcServerChannel 동일한 명명 된 파이프에 대 한 개체를 등록할 수 있습니다. 이러한 경우 요청 수 등록 된 채널 중 하나로 이동 합니다. 이 설정은 alc가 사용 되는 경우에 안전 합니다.

생성자

IpcServerChannel(IDictionary, IServerChannelSinkProvider)

지정된 채널 속성 및 싱크를 사용하여 IpcServerChannel 클래스의 새 인스턴스를 초기화합니다.

IpcServerChannel(IDictionary, IServerChannelSinkProvider, CommonSecurityDescriptor)

지정된 채널 속성, 싱크 및 보안 설명자를 사용하여 IpcServerChannel 클래스의 새 인스턴스를 초기화합니다.

IpcServerChannel(String)

지정된 IPC 포트 이름을 사용하여 IpcServerChannel 클래스의 새 인스턴스를 초기화합니다.

IpcServerChannel(String, String)

지정된 채널 이름 및 IPC 포트 이름을 사용하여 IpcServerChannel 클래스의 새 인스턴스를 초기화합니다.

IpcServerChannel(String, String, IServerChannelSinkProvider)

지정된 채널 이름, IPC 포트 이름 및 싱크를 사용하여 IpcServerChannel 클래스의 새 인스턴스를 초기화합니다.

속성

ChannelData

채널 관련 데이터를 가져옵니다.

ChannelName

현재 채널의 이름을 가져옵니다.

ChannelPriority

현재 채널의 우선 순위를 가져옵니다.

IsSecured

현재 채널이 보안 채널인지 여부를 나타내는 부울 값을 가져오거나 설정합니다.

메서드

Equals(Object)

지정된 개체가 현재 개체와 같은지 확인합니다.

(다음에서 상속됨 Object)
GetChannelUri()

현재 채널의 URI를 반환합니다.

GetHashCode()

기본 해시 함수로 작동합니다.

(다음에서 상속됨 Object)
GetType()

현재 인스턴스의 Type을 가져옵니다.

(다음에서 상속됨 Object)
GetUrlsForUri(String)

현재 IpcChannel 인스턴스에 호스팅되었고 지정된 URI를 사용하는 개체의 모든 URL이 들어 있는 배열을 반환합니다.

MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.

(다음에서 상속됨 Object)
Parse(String, String)

지정된 URL에서 채널 URI와 잘 알려진 원격 개체 URI를 추출합니다.

StartListening(Object)

현재 채널에게 요청 수신을 시작하도록 지시합니다.

StopListening(Object)

현재 채널에게 요청 수신을 중지하도록 지시합니다.

ToString()

현재 개체를 나타내는 문자열을 반환합니다.

(다음에서 상속됨 Object)

적용 대상