Kamis, 20 Januari 2011

Bagaimana Membuat Server Remote

Contoh ini menunjukkan cara membuat versi Remoting dari server Hello World. Ketika klien memanggil HelloMethod pada kelas HelloServer, obyek server menambahkan string lulus dari klien ke "Hai Ada" dan mengembalikan string yang dihasilkan kembali ke klien. Contoh kode berikut menunjukkan kedua obyek server dan aplikasi server.

using System;
menggunakan System.Runtime.Remoting;
menggunakan System.Runtime.Remoting.Channels;
menggunakan System.Runtime.Remoting.Channels.Tcp;

namespace Microsoft.Samples.Remoting.RemotingSamples {
public class Contoh {
public static int Main (string [] args) {
TcpChannel chan baru = TcpChannel (8085);
ChannelServices.RegisterChannel (chan);
RemotingConfiguration.RegisterWellKnownServiceType (
Type.GetType ("RemotingSamples.HelloServer, objek"),
"SayHello", WellKnownObjectMode.SingleCall);
System.Console.WriteLine ("Tekan untuk keluar ...");
System.Console.ReadLine ();
return 0;
}
}}
C #

using System;
menggunakan System.Runtime.Remoting;
menggunakan System.Runtime.Remoting.Channels;
menggunakan System.Runtime.Remoting.Channels.Tcp;

namespace RemotingSamples {
public class HelloServer: MarshalByRefObject {
publik HelloServer () {
Console.WriteLine ("HelloServer diaktifkan");
}

public String HelloMethod (String nama) {
Console.WriteLine ("Hello.HelloMethod: {0}", nama);
kembali "Hai" nama;
}
}}
C #
The HelloServer kelas berasal dari MarshalByRefObject untuk membuatnya remotable. Ketika server dimulai, Anda harus membuat dan mendaftarkan saluran TCP yang akan mendengarkan klien untuk terhubung pada port 8085. Anda juga perlu mendaftarkan remote object dengan kerangka Remoting dengan menelepon RegisterWellKnownType. Parameter untuk panggilan ini adalah sebagai berikut:

1. Nama perakitan yang berisi objek yang sedang terdaftar. Karena objek terkandung dalam executable, Anda memberikan nama dieksekusi di sini. Baik server dan server.exe akan bekerja sejak aturan normal penempatan perakitan berlaku.

2. Parameter berikutnya adalah jenis nama lengkap dari obyek yang terdaftar, dalam hal ini "RemotingSamples.HelloServer" kasus. Anda perlu menentukan baik nama namespace dan classname di sini. Jika Anda tidak menggunakan namespace, Anda lulus classname tersebut.

3. Kemudian, Anda memberikan nama titik akhir dimana objek akan dipublikasikan. Klien harus mengetahui nama ini dalam rangka untuk menyambung ke objek. Setiap string akan bekerja, untuk contoh ini, gunakan "sayHello". Hal ini juga memungkinkan untuk terhubung ke objek remote menggunakan ASP.NET dan jika ini adalah persyaratan, nama titik akhir harus namespace / class.soap. Untuk contoh ini, titik akhir akan RemotingSamples / HelloServer.soap.

4. Parameter terakhir menentukan modus objek, yang dapat SingleCall atau Singleton. Untuk contoh ini, Anda tentukan SingleCall. Modus objek menentukan masa objek ketika diaktifkan pada server. Dalam kasus obyek SingleCall, contoh baru kelas akan dibuat untuk setiap panggilan yang dibuat dari klien, bahkan jika klien yang sama memanggil metode yang sama lebih dari sekali. Di sisi lain, objek Singleton diciptakan sekali saja dan semua klien berkomunikasi dengan objek yang sama.
Sekarang Anda dapat mengkompilasi contoh ini dan jalankan.

csc / debug / r: System.Runtime.Remoting.dll / r: server.cs Object.dll
C #
Sampel kelas harus dipenuhi sebagai eksekusi dan HelloServer kelas akan menjadi dll terpisah.
Ketika Anda mulai server, objek akan dibuat sebagai bagian dari proses pendaftaran sehingga kerangka kerja dapat mengekstrak metadata yang relevan dari objek. Setelah pendaftaran, objek ini hancur dan kerangka kerja mulai mendengarkan untuk klien dapat terhubung pada saluran terdaftar.C # Halo Contoh ServerLihat Sumber
[Contoh ini dapat ditemukan di M: \ web \ users \ situs \ AspnetQuickStart \ v2.0 \ QuickStart \ HowTo \ Sampel \ Remoting \ Halo \Untuk membangun sampel ini, buka command prompt SDK dan arahkan ke jalan di atas. Membangun sampel dengan menggunakan alat membangun msbuild melewati file solusi sebagai parameter pertama: mySample.sln msbuild. Dieksekusi dikompilasi akan ditemukan di direktori direktori \ bin sub.]
Always With US BeaCheater

0 komentar:

Poskan Komentar