首页 > 代码库 > .Net中Remoting通信机制简单实例

.Net中Remoting通信机制简单实例

.Net中Remoting通信机制

前言:

本程序例子实现一个简单的Remoting通信案例

 

  本程序采用语言:c#

  编译工具:vs2013工程文件

  编译环境:.net 4.0

程序模块:

  • Test测试
  • Talker
  • Server端
  • Client端
  • 源代码工程文件下载

 

Test测试程序截图:

技术分享

Talker类:

1 public class Talker : MarshalByRefObject2     {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             else17             {18                 timer1.Enabled = false;19                 btnSend.Text = "开始";20             }21         }22 23         private void sendMsg(string msg)24         {25             try26             {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             try41             {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

 

.Net中Remoting通信机制简单实例