TcpServerChannel Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Menerapkan saluran server untuk panggilan jarak jauh yang menggunakan protokol TCP untuk mengirimkan pesan.
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
- Warisan
-
TcpServerChannel
- Penerapan
Contoh
Contoh kode berikut menunjukkan penggunaan jenis yang dapat dimodifikasi.
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);
}
}
Contoh kode berikut menunjukkan penggunaan TcpServerChannel kelas untuk mengekspos jenis yang dapat diremotable.
#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();
}
}
Keterangan
Penting
Metode panggilan dari kelas ini dengan data yang tidak tepercaya adalah risiko keamanan. Panggil metode dari kelas ini hanya dengan data tepercaya. Untuk informasi selengkapnya, lihat Memvalidasi Semua Input.
Saluran mengangkut pesan di seluruh batas jarak jauh (misalnya, komputer atau domain aplikasi). Kelas ini TcpServerChannel mengangkut pesan menggunakan protokol TCP.
Saluran digunakan oleh infrastruktur jarak jauh .NET Framework untuk mengangkut panggilan jarak jauh. Ketika klien melakukan panggilan ke objek jarak jauh, panggilan diserialisasikan ke dalam pesan yang dikirim oleh saluran klien dan diterima oleh saluran server. Kemudian dideserialisasi dan diproses. Setiap nilai yang dikembalikan ditransmisikan oleh saluran server dan diterima oleh saluran klien.
Untuk melakukan pemrosesan pesan tambahan di sisi server, Anda dapat menentukan implementasi IServerChannelSinkProvider antarmuka tempat semua pesan yang diproses oleh TcpServerChannel instans diteruskan.
Instans TcpServerChannel menerima pesan yang diserialisasikan dalam format biner atau SOAP.
Objek TcpServerChannel memiliki properti konfigurasi terkait yang dapat diatur pada durasi baik dalam file konfigurasi (dengan memanggil metode statis RemotingConfiguration.Configure ) atau secara terprogram (dengan meneruskan IDictionary koleksi ke TcpServerChannel konstruktor). Untuk daftar properti konfigurasi ini, lihat Properti Konfigurasi Saluran dan Formatter.
Konstruktor
TcpServerChannel(IDictionary, IServerChannelSinkProvider) |
Menginisialisasi instans TcpServerChannel baru kelas dengan properti dan sink saluran yang ditentukan. |
TcpServerChannel(IDictionary, IServerChannelSinkProvider, IAuthorizeRemotingConnection) |
Menginisialisasi instans TcpServerChannel baru kelas dengan properti saluran, sink, dan penyedia otorisasi yang ditentukan. |
TcpServerChannel(Int32) |
Menginisialisasi instans TcpServerChannel baru kelas yang mendengarkan pada port yang ditentukan. |
TcpServerChannel(String, Int32) |
Menginisialisasi instans TcpServerChannel baru kelas dengan nama yang diberikan dan yang mendengarkan pada port yang ditentukan. |
TcpServerChannel(String, Int32, IServerChannelSinkProvider) |
Menginisialisasi instans TcpServerChannel baru kelas dengan nama yang diberikan, yang mendengarkan pada port yang ditentukan, dan menggunakan sink yang ditentukan. |
Properti
ChannelData |
Mendapatkan data khusus saluran. |
ChannelName |
Mendapatkan nama saluran saat ini. |
ChannelPriority |
Mendapatkan prioritas saluran saat ini. |
IsSecured |
Mendapatkan atau menetapkan nilai Boolean yang menunjukkan apakah saluran saat ini aman. |
Metode
Equals(Object) |
Menentukan apakah objek yang ditentukan sama dengan objek saat ini. (Diperoleh dari Object) |
GetChannelUri() |
Mengembalikan URI saluran saat ini. |
GetHashCode() |
Berfungsi sebagai fungsi hash default. (Diperoleh dari Object) |
GetType() |
Mendapatkan dari instans Type saat ini. (Diperoleh dari Object) |
GetUrlsForUri(String) |
Mengembalikan array semua URL untuk objek dengan URI yang ditentukan, yang dihosting pada instans saat ini TcpChannel . |
MemberwiseClone() |
Membuat salinan dangkal dari saat ini Object. (Diperoleh dari Object) |
Parse(String, String) |
Mengekstrak URI saluran dan URI objek terkenal jarak jauh dari URL yang ditentukan. |
StartListening(Object) |
Menginstruksikan saluran saat ini untuk mulai mendengarkan di saluran setelah StopListening(Object) metode dipanggil untuk berhenti mendengarkan di saluran. |
StopListening(Object) |
Menginstruksikan saluran saat ini untuk berhenti mendengarkan permintaan. |
ToString() |
Mengembalikan string yang mewakili objek saat ini. (Diperoleh dari Object) |