Remoting Demo
1using System;
2using System.Data;
3using System.Configuration;
4using System.Collections;
5using System.Web;
6using System.Web.Security;
7using System.Web.UI;
8using System.Web.UI.WebControls;
9using System.Web.UI.WebControls.WebParts;
10using System.Web.UI.HtmlControls;
11using System.Runtime.Remoting;
12using System.Runtime.Remoting.Channels;
13using System.Runtime.Remoting.Channels.Tcp;
14using System.Threading;
15
16public partial class remoting : System.Web.UI.Page
17{
18 protected void Page_Load(object sender, EventArgs e)
19 {
20 Server1();
21 Client();
22 }
23 public class test : MarshalByRefObject
24 {
25 public string doing()
26 {
27 string date = DateTime.Now.ToString();
28 Thread.Sleep(5000);
29 return string.Format("{0} in {1}", this.GetType().Name,date+ AppDomain.CurrentDomain.FriendlyName+DateTime.Now.ToString());
30 }
31 }
32 public void Server1()
33
34 AppDomain server = AppDomain.CreateDomain("server");
35 IChannel[] channels = ChannelServices.RegisteredChannels;
36
37 //关闭指定名为MyTcp的通道;
38 foreach (IChannel eachChannel in channels)
39 {
40 if (eachChannel.ChannelName == "tcp")
41 {
42 TcpServerChannel tcpChannel = (TcpServerChannel)eachChannel;
43
44 //关闭监听;
45 tcpChannel.StopListening(null);
46
47 //注销通道;
48 ChannelServices.UnregisterChannel(tcpChannel);
49 }
50 }
51
52 TcpServerChannel tcpsc = new TcpServerChannel(1234);
53 ChannelServices.RegisterChannel(tcpsc, false);
54
55 RemotingConfiguration.RegisterWellKnownServiceType(typeof(test), "test", WellKnownObjectMode.Singleton);
56
57 }
58
59 public void Client()
60 {
61 IChannel[] channels = ChannelServices.RegisteredChannels;
62 foreach (IChannel eachChannel in channels)
63 {
64 if (eachChannel.ChannelName == "TcpChannel")
65 {
66 TcpChannel tcpChannel = (TcpChannel)eachChannel;
67
68 //关闭监听;
69 tcpChannel.StopListening(null);
70
71 //注销通道;
72 ChannelServices.UnregisterChannel(tcpChannel);
73 }
74 }
75 BinaryServerFormatterSinkProvider provider = new BinaryServerFormatterSinkProvider();
76 provider.TypeFilterLevel = System.Runtime.Serialization.Formatters.TypeFilterLevel.Full;
77
78 Hashtable props = new Hashtable();
79
80 props["port"] = 7654;
81 props["name"] = "TcpChannel";
82
83
84 TcpChannel Cchannel = new TcpChannel(props, null, provider);
85
86 // TcpClientChannel Cchannel= new TcpClientChannel();
87 // Cchannel.ChannelName="Cchannel";
88 ChannelServices.RegisterChannel(Cchannel, false);
89 test remo = (test)Activator.GetObject(typeof(test), "tcp://localhost:1234/test");
90 Response.Write(DateTime.Now);
91 Response.Write( remo.doing());
92 Response.Write(DateTime.Now);
93 }
94
95}
96
2using System.Data;
3using System.Configuration;
4using System.Collections;
5using System.Web;
6using System.Web.Security;
7using System.Web.UI;
8using System.Web.UI.WebControls;
9using System.Web.UI.WebControls.WebParts;
10using System.Web.UI.HtmlControls;
11using System.Runtime.Remoting;
12using System.Runtime.Remoting.Channels;
13using System.Runtime.Remoting.Channels.Tcp;
14using System.Threading;
15
16public partial class remoting : System.Web.UI.Page
17{
18 protected void Page_Load(object sender, EventArgs e)
19 {
20 Server1();
21 Client();
22 }
23 public class test : MarshalByRefObject
24 {
25 public string doing()
26 {
27 string date = DateTime.Now.ToString();
28 Thread.Sleep(5000);
29 return string.Format("{0} in {1}", this.GetType().Name,date+ AppDomain.CurrentDomain.FriendlyName+DateTime.Now.ToString());
30 }
31 }
32 public void Server1()
33
34 AppDomain server = AppDomain.CreateDomain("server");
35 IChannel[] channels = ChannelServices.RegisteredChannels;
36
37 //关闭指定名为MyTcp的通道;
38 foreach (IChannel eachChannel in channels)
39 {
40 if (eachChannel.ChannelName == "tcp")
41 {
42 TcpServerChannel tcpChannel = (TcpServerChannel)eachChannel;
43
44 //关闭监听;
45 tcpChannel.StopListening(null);
46
47 //注销通道;
48 ChannelServices.UnregisterChannel(tcpChannel);
49 }
50 }
51
52 TcpServerChannel tcpsc = new TcpServerChannel(1234);
53 ChannelServices.RegisterChannel(tcpsc, false);
54
55 RemotingConfiguration.RegisterWellKnownServiceType(typeof(test), "test", WellKnownObjectMode.Singleton);
56
57 }
58
59 public void Client()
60 {
61 IChannel[] channels = ChannelServices.RegisteredChannels;
62 foreach (IChannel eachChannel in channels)
63 {
64 if (eachChannel.ChannelName == "TcpChannel")
65 {
66 TcpChannel tcpChannel = (TcpChannel)eachChannel;
67
68 //关闭监听;
69 tcpChannel.StopListening(null);
70
71 //注销通道;
72 ChannelServices.UnregisterChannel(tcpChannel);
73 }
74 }
75 BinaryServerFormatterSinkProvider provider = new BinaryServerFormatterSinkProvider();
76 provider.TypeFilterLevel = System.Runtime.Serialization.Formatters.TypeFilterLevel.Full;
77
78 Hashtable props = new Hashtable();
79
80 props["port"] = 7654;
81 props["name"] = "TcpChannel";
82
83
84 TcpChannel Cchannel = new TcpChannel(props, null, provider);
85
86 // TcpClientChannel Cchannel= new TcpClientChannel();
87 // Cchannel.ChannelName="Cchannel";
88 ChannelServices.RegisterChannel(Cchannel, false);
89 test remo = (test)Activator.GetObject(typeof(test), "tcp://localhost:1234/test");
90 Response.Write(DateTime.Now);
91 Response.Write( remo.doing());
92 Response.Write(DateTime.Now);
93 }
94
95}
96