background image

在 VS 2008 中的 NetRm 解决方案再次添加新的控制台应用程序项目,并命名为
NetRmServer。该项目所生成的程序集作为 Remoting 的服务器端,首先需要添加
“ NetRmClass.dll” 程 序 集 引 用 , 并 导 入 NetRmClass 命 名 空 间 , 编 写 该 项 目 的
Program.cs 如代码 13.5 所示。

代码 13.5  Remoting 服务器端程序:Program.cs

using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Tcp;
using NetRmClass;

namespace NetRmServer
{
    class Program
    {
       //声明 TcpServerChannel 类型的静态字段 channels
       static TcpServerChannel channels;

       static void Main(string[] args)
       {
           //创建新的 TcpServerChannel 对象,端口号为 3000,引用为 channels
           channels = new TcpServerChannel(3000);
           //将 channels 注册到信道服务
           ChannelServices.RegisterChannel(channels, false);
           //创建知名服务类型的对象,传递远程对象的类型、对象 URI 和激活对象的枚举
成员
           RemotingConfiguration.RegisterWellKnownServiceType(typeof(RmObj), 
"MyUri", WellKnownObjectMode.Singleton);
           //信息提示,当用户输入字符,则结束程序
           Console.WriteLine("======服务器端已启动======");
           Console.Read();
       }
    }
}

添加 NetRmClass.dll”程序集引用后,该程序集的副本即被复制到 NetRmServer 项目

目录中的 bin\Debug”路径下,以供 NetRmServer 项目生成的程序集使用。将 NetRm
解决方案中的 NetRmServer

项目进行编译,即可在该项目目录中的 bin\Debug”路径

下生成编译后的 NetRmServer.exe 程序集。
在 VS 2008 中的 NetRm 解决方案再次添加新的 Windows 窗体应用程序项目,并命名
为 NetRmClient。该项目所生成的程序集作为 Remoting 的客户端,首先仍然需要添加
“NetRmClass.dll”程序集引用,并导入 NetRmClass

命名空间。在 Form1”窗体的设计

视图中添加一个 Button 控件和 TextBox

控件,分别命名为 button1” “

和 textBox1”,