zoukankan      html  css  js  c++  java
  • .Net中Remoting通信机制简单实例

    .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

  • 相关阅读:
    如何写一个使用Web Service的IOS应用
    iPad定制相机界面
    IOS Quartz 2D 学习(1)
    cocoa Shallow Copy与Deep Copy
    sqlite3_prepare_v2返回1
    IOS 监听相机对焦事件
    UIImageView添加响应事件无响应
    二、Mongodb常用命令
    三、Mongodb Java中的使用
    多测师肖老师__第二个月python安装和pycharm安装
  • 原文地址:https://www.cnblogs.com/JiYF/p/6114360.html
Copyright © 2011-2022 走看看