TcpServerChannel Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
İletileri iletmek için TCP protokolunu kullanan uzak çağrılar için bir sunucu kanalı uygular.
public ref class TcpServerChannel : System::Runtime::Remoting::Channels::IChannelReceiver
public ref class TcpServerChannel : System::Runtime::Remoting::Channels::IChannelReceiver, System::Runtime::Remoting::Channels::ISecurableChannel
public class TcpServerChannel : System.Runtime.Remoting.Channels.IChannelReceiver
public class TcpServerChannel : System.Runtime.Remoting.Channels.IChannelReceiver, System.Runtime.Remoting.Channels.ISecurableChannel
type TcpServerChannel = class
interface IChannelReceiver
interface IChannel
type TcpServerChannel = class
interface IChannelReceiver
interface IChannel
interface ISecurableChannel
Public Class TcpServerChannel
Implements IChannelReceiver
Public Class TcpServerChannel
Implements IChannelReceiver, ISecurableChannel
- Devralma
-
TcpServerChannel
- Uygulamalar
Örnekler
Aşağıdaki kod örneğinde, bir uzaktan iletişim türü kullanımı gösterilmektedir.
using namespace System;
using namespace System::Runtime::Remoting;
public ref class Remotable: public MarshalByRefObject
{
private:
int callCount;
public:
Remotable()
: callCount( 0 )
{}
int GetCount()
{
callCount++;
return (callCount);
}
};
using System;
using System.Runtime.Remoting;
public class Remotable : MarshalByRefObject
{
private int callCount = 0;
public int GetCount()
{
callCount++;
return(callCount);
}
}
Aşağıdaki kod örneğinde, yeniden dağıtılabilir bir türü kullanıma açmak için sınıfının kullanımı TcpServerChannel gösterilmektedir.
#using <System.Runtime.Remoting.dll>
#using <System.dll>
#using <Remotable.dll>
using namespace System;
using namespace System::Runtime::Remoting;
using namespace System::Runtime::Remoting::Channels;
using namespace System::Runtime::Remoting::Channels::Tcp;
int main()
{
// Set up a server channel.
TcpServerChannel^ serverChannel = gcnew TcpServerChannel( 9090 );
ChannelServices::RegisterChannel( serverChannel );
// Expose an object for remote calls.
RemotingConfiguration::RegisterWellKnownServiceType( Remotable::typeid, "Remotable.rem", WellKnownObjectMode::Singleton );
// Show the name and priority of the channel.
Console::WriteLine( "Channel Name: {0}", serverChannel->ChannelName );
Console::WriteLine( "Channel Priority: {0}", serverChannel->ChannelPriority );
// Show the URIs associated with the channel.
ChannelDataStore^ data = dynamic_cast<ChannelDataStore^>(serverChannel->ChannelData);
System::Collections::IEnumerator^ myEnum = data->ChannelUris->GetEnumerator();
while ( myEnum->MoveNext() )
{
String^ uri = safe_cast<String^>(myEnum->Current);
Console::WriteLine( uri );
}
// Wait for method calls.
Console::WriteLine( "Listening..." );
Console::ReadLine();
}
using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Tcp;
public class Server
{
public static void Main()
{
// Set up a server channel.
TcpServerChannel serverChannel = new TcpServerChannel(9090);
ChannelServices.RegisterChannel(serverChannel);
// Expose an object for remote calls.
RemotingConfiguration.RegisterWellKnownServiceType(
typeof(Remotable), "Remotable.rem", WellKnownObjectMode.Singleton
);
// Show the name and priority of the channel.
Console.WriteLine("Channel Name: {0}", serverChannel.ChannelName);
Console.WriteLine("Channel Priority: {0}", serverChannel.ChannelPriority);
// Show the URIs associated with the channel.
ChannelDataStore data = (ChannelDataStore) serverChannel.ChannelData;
foreach (string uri in data.ChannelUris)
{
Console.WriteLine(uri);
}
// Wait for method calls.
Console.WriteLine("Listening...");
Console.ReadLine();
}
}
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 iletileri uzaktan iletişim sınırları (örneğin, bilgisayarlar veya uygulama etki alanları) arasında taşır. sınıfı, TcpServerChannel TCP protokolunu kullanarak iletileri taşır.
Kanallar, uzaktan çağrıları taşımak için .NET Framework uzaktan iletişim altyapısı tarafından kullanılır. İstemci uzak bir nesneye çağrı yaptığında, çağrı bir istemci kanalı tarafından gönderilen ve bir sunucu kanalı tarafından alınan bir ileti halinde serileştirilir. Daha sonra seri durumdan çıkarılır ve işlenir. Döndürülen değerler sunucu kanalı tarafından iletilir ve istemci kanalı tarafından alını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 TcpServerChannel bir uygulamasını belirtebilirsiniz.
Örnek, TcpServerChannel ikili veya SOAP biçiminde seri hale getirilmiş iletileri kabul eder.
Nesne TcpServerChannel , 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 ) çalışma zamanında ayarlanabilen ilişkili yapılandırma özelliklerine TcpServerChannel sahiptir.
Oluşturucular
| Name | Description |
|---|---|
| TcpServerChannel(IDictionary, IServerChannelSinkProvider, IAuthorizeRemotingConnection) |
Belirtilen kanal özellikleri, havuz ve yetkilendirme sağlayıcısı ile sınıfının yeni bir örneğini TcpServerChannel başlatır. |
| TcpServerChannel(IDictionary, IServerChannelSinkProvider) |
Belirtilen kanal özellikleri ve havuz ile sınıfının yeni bir örneğini TcpServerChannel başlatır. |
| TcpServerChannel(Int32) |
Belirtilen bağlantı noktasını dinleyen sınıfın TcpServerChannel yeni bir örneğini başlatır. |
| TcpServerChannel(String, Int32, IServerChannelSinkProvider) |
Belirtilen bağlantı noktasını dinleyen ve belirtilen havuzu kullanan belirtilen adla sınıfının yeni bir örneğini TcpServerChannel başlatır. |
| TcpServerChannel(String, Int32) |
Belirtilen ada sahip ve belirtilen bağlantı noktasını dinleyen sınıfın yeni bir örneğini TcpServerChannel başlatır. |
Özellikler
| Name | Description |
|---|---|
| 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
| Name | Description |
|---|---|
| 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() |
Geçerli örneğin Type alır. (Devralındığı yer: Object) |
| GetUrlsForUri(String) |
Belirtilen URI'ye sahip bir nesne için geçerli TcpChannel örnekte barındırılan tüm URL'lerden oluşan bir dizi döndürür. |
| MemberwiseClone() |
Geçerli Objectbasit 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, kanalda dinlemeyi durdurmak için yöntem çağrıldıktan sonra StopListening(Object) kanalda dinlemeye başlamasını sağlar. |
| StopListening(Object) |
Geçerli kanala istekleri dinlemeyi durdurmasını emreder. |
| ToString() |
Geçerli nesneyi temsil eden bir dize döndürür. (Devralındığı yer: Object) |