原文:.Net中Remoting通信机制简单实例
前言:
本程序例子实现一个简单的Remoting通信案例
本程序采用语言:c#
编译工具:vs2013工程文件
编译环境:.net 4.0
程序模块:
- Test测试
- Talker
- Server端
- Client端
- 源代码工程文件下载
Test测试程序截图:
![]()
Talker类:
1 public class Talker : MarshalByRefObject
2 {
3 public void Talk(string word)
4 {
5 System.Console.WriteLine(word);
6 }
7
8 }
Server端:
1 //注册通道
2 TcpServerChannel channel = new TcpServerChannel("TalkChannel",8090);
3 ChannelServices.RegisterChannel(channel,true);
4
5 //注册远程对象
6 RemotingConfiguration.RegisterWellKnownServiceType(
7 typeof(Talker),
8 "Talker",
9 WellKnownObjectMode.SingleCall);
Client端:
1 public partial class Form1 : Form
2 {
3 private Talker _talk = null;
4 public Form1()
5 {
6 InitializeComponent();
7 }
8
9 private void btnSend_Click(object sender, EventArgs e)
10 {
11 if (btnSend.Text.Equals("开始"))
12 {
13 timer1.Enabled = true;
14 btnSend.Text = "结束";
15 }
16 else
17 {
18 timer1.Enabled = false;
19 btnSend.Text = "开始";
20 }
21 }
22
23 private void sendMsg(string msg)
24 {
25 try
26 {
27 //操作远程对象
28 _talk.Talk(msg);
29 string newline = msg + Environment.NewLine;
30 txtContent.Text = txtContent.Text.Insert(0, newline);
31 }
32 catch (Exception ex)
33 {
34 MessageBox.Show(ex.Message);
35 }
36 }
37
38 private void Form1_Load(object sender, EventArgs e)
39 {
40 try
41 {
42 timer1.Interval = 1000;
43 //注册通道
44 TcpClientChannel channel = new TcpClientChannel();
45 ChannelServices.RegisterChannel(channel, true);
46 //获取远程对象
47 _talk = (Talker)Activator.GetObject(typeof(Talker), "TCP://localhost:8090/Talker");
48 }
49 catch (Exception ex)
50 {
51 MessageBox.Show(ex.Message);
52 }
53 }
54
55 private void timer1_Tick(object sender, EventArgs e)
56 {
57 sendMsg(txtWord.Text.Trim());
58 }
源代码工程文件下载:
源代码工程文件下载 http://files.cnblogs.com/files/JiYF/RemotingSolution.rar