Share via


IpcServerChannel Sınıf

Tanım

İletileri iletmek için IPC sistemini kullanan uzak çağrılar için bir sunucu kanalı uygular.

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
Devralma
IpcServerChannel
Uygulamalar

Örnekler

Aşağıdaki kod örneğinde sınıfın nasıl kullanılacağı gösterilmektedir 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();
    }
}

Yukarıdaki kod aşağıdaki uzak nesneyi kullanıma açmak için kullanılır.

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++);
  } }
}

Bu nesneyi uzaktan kullanan bir istemci örneği için bkz IpcClientChannel. .

Açıklamalar

Önemli

Güvenilmeyen verilerle bu sınıftan yöntemleri çağırmak bir güvenlik riskidir. Bu sınıftaki yöntemleri yalnızca güvenilen verilerle çağırın. Daha fazla bilgi için bkz. Tüm Girişleri Doğrulama.

Kanallar, uzaktan çağrıları taşımak için .NET Framework uzaktan iletişim altyapısı tarafından kullanılır. İstemci uzak bir nesneyi çağırdığında, çağrı bir istemci kanalı tarafından gönderilen ve bir sunucu kanalı tarafından alınan bir iletide seri hale getirilir. İleti alındıktan sonra seri durumdan çıkarılır ve işlenir. Döndürülen tüm değerler sunucu kanalı tarafından iletilir ve istemci kanalı tarafından alınır.

sınıfı, IpcServerChannel iletileri aynı bilgisayardaki uygulama etki alanları arasında taşımak için Windows işlemler arası iletişim (IPC) sistemini kullanır. Aynı bilgisayardaki uygulama etki alanları arasında iletişim kurarken, IPC kanalı TCP veya HTTP kanallarından çok daha hızlıdır.

Sunucu tarafında iletilerin ek işlenmesini gerçekleştirmek için, örnek tarafından işlenen tüm iletilerin IServerChannelSinkProvider geçirildiği arabirimin IpcServerChannel bir uygulamasını belirtin.

Örnek, IpcServerChannel ikili veya SOAP biçiminde seri hale getirilmiş iletileri kabul eder.

Bir IpcServerChannel nesne, çalışma zamanında bir yapılandırma dosyasında (statik RemotingConfiguration.Configure yöntemi çağırarak) veya program aracılığıyla (bir koleksiyonu oluşturucuya geçirerek IDictionary ) ayarlanabilen ilişkili yapılandırma özelliklerine IpcServerChannel sahiptir. Bu yapılandırma özelliklerinin listesi için oluşturucunun belgelerine IpcServerChannel bakın.

Dikkat

bağımsız değişkeninde properties özelliğini olarak false ayarlarkenexclusiveAddressUse, aynı adlandırılmış kanal için birkaç IpcServerChannel nesne kaydedilebilir. Böyle bir durumda istekler kayıtlı kanallardan herhangi birine gidebilir. Bu ayar yalnızca ALC'ler de kullanılıyorsa güvenli olarak kabul edilir.

Oluşturucular

IpcServerChannel(IDictionary, IServerChannelSinkProvider)

Belirtilen kanal özellikleri ve havuz ile sınıfının yeni bir örneğini IpcServerChannel başlatır.

IpcServerChannel(IDictionary, IServerChannelSinkProvider, CommonSecurityDescriptor)

Belirtilen kanal özellikleri, havuz ve güvenlik tanımlayıcısı ile sınıfının yeni bir örneğini IpcServerChannel başlatır.

IpcServerChannel(String)

Belirtilen IPC bağlantı noktası adıyla sınıfının yeni bir örneğini IpcServerChannel başlatır.

IpcServerChannel(String, String)

Belirtilen kanal adı ve IPC bağlantı noktası adıyla sınıfının yeni bir örneğini IpcServerChannel başlatır.

IpcServerChannel(String, String, IServerChannelSinkProvider)

Belirtilen kanal adı, IPC bağlantı noktası adı ve havuz ile sınıfının yeni bir örneğini IpcServerChannel başlatır.

Özellikler

ChannelData

Kanala özgü verileri alır.

ChannelName

Geçerli kanalın adını alır.

ChannelPriority

Geçerli kanalın önceliğini alır.

IsSecured

Geçerli kanalın güvenli olup olmadığını belirten bir Boole değeri alır veya ayarlar.

Yöntemler

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
GetChannelUri()

Geçerli kanalın URI'sini döndürür.

GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
GetUrlsForUri(String)

Geçerli IpcChannel örnekte barındırılan belirtilen URI'ye sahip nesnenin tüm URL'lerinden oluşan bir dizi döndürür.

MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
Parse(String, String)

Kanal URI'sini ve uzak iyi bilinen nesne URI'sini belirtilen URL'den ayıklar.

StartListening(Object)

Geçerli kanala istekleri dinlemeye başlamasını emreder.

StopListening(Object)

Geçerli kanala istekleri dinlemeyi durdurmasını emreder.

ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)

Şunlara uygulanır