EXERCISES: Tạo mới Folder tên Exercise07Soln
Exercise 01 : Tạo mới Solution tên ServerChannelSoln
· Thêm Console Application vào Solution tên là TcpServerRemotingPro
· Thêm Class tên RemoteClass
· Kế thừa từ Class MarshalByRefObject cho RemoteClass
public class RemoteClass : MarshalByRefObject
· Khai báo Constructor và in ra màn hình chuỗi “This is Constructor”
public RemoteClass()
{
Console.WriteLine("This is Constructor ");
}
· Khai báo phương thức Public HelloRemoteClass và in ra chuỗi “This is method of RemoteClass”
public void HelloRemoteClass()
{
Console.WriteLine("This is method of RemoteClass");
}
· Khai báo phương thức Public HelloRemoteClass nhận vào tham số là message và in ra chuỗi “This is method of RemoteClass”+ message
public void HelloRemoteClass(string message)
{
Console.WriteLine("This is method of RemoteClass" + message);
}
//code example
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace TcpServerRemotingPro
{
public class RemoteClass : MarshalByRefObject
{
public RemoteClass()
{
Console.WriteLine("This is Constructor ");
}
public void HelloRemoteClass()
{
Console.WriteLine("This is method of RemoteClass");
}
public void HelloRemoteClass(string message)
{
Console.WriteLine("This is method of RemoteClass" + message);
}
}
}
Exercise 02 : Tiếp tục với Project TcpServerRemotingPro
· Add Reference System.Runtime.Remoting; trong tab .NET
· Khai báo using trong Class Program
o using System.Runtime.Remoting;
o using System.Runtime.Remoting.Channels;
o using System.Runtime.Remoting.Channels.Tcp;
· trong phương thức Main
o Khai báo biến cho TcpServerChannel và khởi tạo với port 2010
TcpServerChannel tcpServerChannel = new TcpServerChannel(2010);
o Đăng ký TcpServerChannel này và cấu hình nó
ChannelServices.RegisterChannel(tcpServerChannel, false);
RemotingConfiguration.RegisterWellKnownServiceType(
typeof(RemoteClass),"QuocHung",
WellKnownObjectMode.Singleton);
o In ra màn hình chuỗi “Server is running,please press any ky to termiate”
//code example
using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Tcp;
namespace TcpServerRemotingPro
{
class Program
{
static void Main(string[] args)
{
TcpServerChannel tcpServerChannel = new TcpServerChannel(2010);
ChannelServices.RegisterChannel(tcpServerChannel, false);
try
{
RemotingConfiguration.RegisterWellKnownServiceType(typeof(RemoteClass),
"QuocHung", WellKnownObjectMode.Singleton);
Console.WriteLine("Server is running,please press any ky to termiate");
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Console.ReadLine();
ChannelServices.UnregisterChannel(tcpServerChannel);
}
}
}
Exercise 03 : Tạo mới Solution tên ClientChannelSoln
· Thêm Console Application vào Solution tên là TcpClientRemotingPro
· Copy Class RemoteClass từ TcpServerRemotingPro và đổi namespace
· Xóa Constructor
· Xóa body trong phương thức HelloRemoteClass
· Xóa body trong phương thức HelloRemoteClass có tham số là message
Exercise 04 : Tiếp tục với project TcpClientRemotingPro
· Add Reference System.Runtime.Remoting; trong tab .NET
· Khai báo using trong Class Program
o using System.Runtime.Remoting;
o using System.Runtime.Remoting.Channels;
o using System.Runtime.Remoting.Channels.Tcp;
· trong phương thức Main
o Khai báo biến cho TcpClientChannel và lấy ra object từ port 2010
TcpClientChannel tcpClientChannel = new TcpClientChannel (2010);
o Đăng ký TcpClientChannel này và cấu hình nó
RemoteClass remoteClass = (RemoteClass)Activator.GetObject(
typeof(RemoteClass),"tcp://localhost:2010/QuocHung");
remoteClass.HelloRemoteClass();
remoteClass.HelloRemoteClass(" HKG");
o In ra màn hình chuỗi “Client is running,please press any ky to termiate”
· code example
using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Tcp;
namespace TcpClientRemotingPro
{
class Program
{
static void Main(string[] args)
{
TcpClientChannel tcpClientChannel = new TcpClientChannel();
ChannelServices.RegisterChannel(tcpClientChannel, false);
try
{
RemoteClass remoteClass = (RemoteClass)Activator.GetObject(typeof(RemoteClass),
"tcp://localhost:2010/QuocHung");
remoteClass.HelloRemoteClass();
remoteClass.HelloRemoteClass(" HKG");
Console.WriteLine("Client is running,please press any ky to termiate");
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Console.ReadKey();
}
}
}
Exercise 05 : Tiếp tục với project TcpClientRemotingPro và TcpServerRemotingPro
o F5(run) TcpServerRemotingPro và thấy in trên server và thấy chuỗi chuỗi “Server is running,please press any ky to termiate”
o F5(run) TcpClientRemotingPro và thấy :
o In trên client chuỗi
§ “Client is running,please press any ky to termiate”
o In trên server chuỗi
§ “Server is running,please press any ky to termiate”
§ “This is Constructor”
§ This is method of RemoteClass
§ This is method of RemoteClass + message
o Chèn phím bất kỳ trên client và server để kết thúc
Exercise 06 : Tiếp tục với ServerChannelSoln
· Thêm Console Application vào Solution tên là HttpServerRemotingPro
· Thêm Class tên RemoteClass
· Kế thừa từ Class MarshalByRefObject cho RemoteClass
public class RemoteClass : MarshalByRefObject
· Khai báo Constructor và in ra màn hình chuỗi “This is Constructor”
public RemoteClass()
{
Console.WriteLine("This is Constructor ");
}
· Khai báo phương thức Public HelloRemoteClass và in ra chuỗi “This is method of RemoteClass”
public void HelloRemoteClass()
{
Console.WriteLine("This is method of RemoteClass");
}
· Khai báo phương thức Public HelloRemoteClass nhận vào tham số là message và in ra chuỗi “This is method of RemoteClass”+ message
public void HelloRemoteClass(string message)
{
Console.WriteLine("This is method of RemoteClass" + message);
}
//code example
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace HttpServerRemotingPro
{
public class RemoteClass : MarshalByRefObject
{
public RemoteClass()
{
Console.WriteLine("This is Constructor ");
}
public void HelloRemoteClass()
{
Console.WriteLine("This is method of RemoteClass");
}
public void HelloRemoteClass(string message)
{
Console.WriteLine("This is method of RemoteClass" + message);
}
}
}
Exercise 07 : Tiếp tục với Project HttpServerRemotingPro
· Add Reference System.Runtime.Remoting; trong tab .NET
· Khai báo using trong Class Program
o using System.Runtime.Remoting;
o using System.Runtime.Remoting.Channels;
o using System.Runtime.Remoting.Channels.Http;
· trong phương thức Main
o Khai báo biến cho HttpServerChannel và khởi tạo với port 2011
HttpServerChannel httpServerChannel = new HttpServerChannel (2011);
o Đăng ký HttpServerChannel này và cấu hình nó
ChannelServices.RegisterChannel(httpServerChannel, false);
RemotingConfiguration.RegisterWellKnownServiceType(
typeof(RemoteClass),"QuocHung",
WellKnownObjectMode.Singleton);
o In ra màn hình chuỗi “Server is running,please press any ky to termiate”
//code example
using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Http;
namespace HttpServerRemotingPro
{
class Program
{
static void Main(string[] args)
{
HttpServerChannel httpServerChannel = new HttpServerChannel (2011);
ChannelServices.RegisterChannel(httpServerChannel, false);
try
{
RemotingConfiguration.RegisterWellKnownServiceType(typeof(RemoteClass),
"QuocHung", WellKnownObjectMode.Singleton);
Console.WriteLine("Server is running,please press any ky to termiate");
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Console.ReadLine();
ChannelServices.UnregisterChannel(httpServerChannel);
}
}
}
Exercise 08 : Tiếp tục với ClientChannelSoln
· Thêm Console Application vào Solution tên là HttpClientRemotingPro
· Copy Class RemoteClass từ HttpClientRemotingPro và đổi namespace
· Xóa Constructor
· Xóa body trong phương thức HelloRemoteClass
· Xóa body trong phương thức HelloRemoteClass có tham số là message
Exercise 09 : Tiếp tục với project httpClientRemotingPro
· Add Reference System.Runtime.Remoting; trong tab .NET
· Khai báo using trong Class Program
o using System.Runtime.Remoting;
o using System.Runtime.Remoting.Channels;
o using System.Runtime.Remoting.Channels.Http;
· trong phương thức Main
o Khai báo biến cho HttpClientChannel và lấy ra object từ port 2011
HttpClientChannel httpClientChannel = new HttpClientChannel (2011);
o Đăng ký HttpClientChannel này và cấu hình nó
RemoteClass remoteClass = (RemoteClass)Activator.GetObject(
typeof(RemoteClass),"tcp://localhost:2010/QuocHung");
remoteClass.HelloRemoteClass();
remoteClass.HelloRemoteClass(" Http ");
o In ra màn hình chuỗi “Client is running,please press any ky to termiate”
· code example
using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Http;
namespace TcpClientRemotingPro
{
class Program
{
static void Main(string[] args)
{
HttpClientChannel httpClientChannel =
new HttpClientChannel ();
ChannelServices.RegisterChannel(httpClientChannel, false);
try
{
RemoteClass remoteClass = (RemoteClass)Activator.GetObject(typeof(RemoteClass),
"tcp://localhost:2011/QuocHung");
remoteClass.HelloRemoteClass();
remoteClass.HelloRemoteClass(" HKG");
Console.WriteLine("Client is running,please press any ky to termiate");
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Console.ReadKey();
}
}
}
Exercise 05 : Tiếp tục với project HttpClientRemotingPro và HttpServerRemotingPro
o F5(run) TcpServerRemotingPro và thấy in trên server và thấy chuỗi chuỗi “Server is running,please press any ky to termiate”
o F5(run) TcpClientRemotingPro và thấy :
o In trên client chuỗi
§ “Client is running,please press any ky to termiate”
o In trên server chuỗi
§ “Server is running,please press any ky to termiate”
§ “This is Constructor”
§ This is method of RemoteClass
§ This is method of RemoteClass + message
o Chèn phím bất kỳ trên client và server để kết thúc
Exercise 11 : Thêm mới Solution tên là RemotingSoln
· Thêm mới Class Library Application vào Solution tên là RemotingClasses
· Copy RemoteClass từ TcpServerRemotingPro hoặc HttpServerRemotingPro
· Thay đổi namespace thành RemotingClasses
· Build project thành dll tên RemotingClasses.dll
· Xóa bỏ RemoveClass của TcpClientRemotingPro, TcpServerRemotingPro, HttpClientRemotingPro, HttpServerRemotingPro
· Add Reference đến RemotingClasses.dll tới 4 project trên
· Chạy server và client và sẽ không xuất hiện lỗi
· Code example
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace RemotingClasses
{
public class RemoteClass : MarshalByRefObject
{
public RemoteClass()
{
Console.WriteLine("This is Constructor ");
}
public void HelloRemoteClass()
{
Console.WriteLine("This is method of RemoteClass");
}
public void HelloRemoteClass(string message)
{
Console.WriteLine("This is method of RemoteClass" + message);
}
}
}
0 comments:
Post a Comment