共用方式為


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遠端基礎結構會使用通道來傳輸遠端呼叫。 當用戶端呼叫遠端物件時,呼叫會序列化為用戶端通道所傳送並由伺服器通道接收的訊息。 收到訊息之後,就會還原序列化和處理訊息。 任何傳回的值會由伺服器通道傳輸,並由用戶端通道接收。

類別 IpcServerChannel 會使用 Windows 處理序間通訊 (IPC) 系統,在相同電腦上的應用程式域之間傳輸訊息。 在相同電腦上的應用程式域之間進行通訊時,IPC 通道比 TCP 或 HTTP 通道快很多。

若要在伺服器端執行額外的訊息處理,請指定 介面的實作 IServerChannelSinkProvider ,該介面會透過該介面傳遞實例處理 IpcServerChannel 的所有訊息。

實例 IpcServerChannel 接受以二進位或 SOAP 格式序列化的訊息。

IpcServerChannel物件具有相關聯的組態屬性,可以藉由叫用靜態 RemotingConfiguration.Configure 方法) 或在程式設計上 (將集合傳遞 IDictionaryIpcServerChannel 建構函式) ,在執行時間設定組態檔 (。 如需這些組態屬性的清單,請參閱建 IpcServerChannel 構函式的檔。

警告

在 引數中將 exclusiveAddressUse 屬性設定為 false 時,可以針對相同的具名管道註冊數 IpcServerChannelproperties 物件。 在這種情況下,要求可以移至任何已註冊的通道。 只有在也使用 ALC 時,才會將此設定視為安全。

建構函式

IpcServerChannel(IDictionary, IServerChannelSinkProvider)

使用指定的通道屬性和接收,初始化 IpcServerChannel 類別的新執行個體。

IpcServerChannel(IDictionary, IServerChannelSinkProvider, CommonSecurityDescriptor)

使用指定的通道屬性、接收 (Sink) 和安全性描述元 (Security Descriptor),初始化 IpcServerChannel 類別的新執行個體。

IpcServerChannel(String)

使用指定的 IPC 連接埠名稱,初始化 IpcServerChannel 類別的新執行個體。

IpcServerChannel(String, String)

使用指定的通道名稱和 IPC 連接埠名稱,初始化 IpcServerChannel 類別的新執行個體。

IpcServerChannel(String, String, IServerChannelSinkProvider)

使用指定的通道名稱、IPC 連接埠名稱和接收 (Sink),初始化 IpcServerChannel 類別的新執行個體。

屬性

ChannelData

取得通道特定資料。

ChannelName

取得目前通道的名稱。

ChannelPriority

取得目前通道的優先權。

IsSecured

取得或設定指出目前通道是否安全的布林值。

方法

Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
GetChannelUri()

傳回目前通道的 URI。

GetHashCode()

做為預設雜湊函式。

(繼承來源 Object)
GetType()

取得目前執行個體的 Type

(繼承來源 Object)
GetUrlsForUri(String)

傳回具有指定 URI 之物件的所有 URL 陣列,裝載於目前 IpcChannel 執行個體上。

MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
Parse(String, String)

從指定的 URL 擷取通道 URI 和遠端已知物件 URI。

StartListening(Object)

指示目前通道開始接聽要求。

StopListening(Object)

指示目前通道停止接聽要求。

ToString()

傳回代表目前物件的字串。

(繼承來源 Object)

適用於