.net Remoting(1)——起点,从示例做起

简介: .net remoting用于应用程序之间通信。 先做一简单的示例: 准备三个项目。 (一)远程对象 新建立类库项目:SelfRemote public class selfRemoteObject : MarshalByRefObject { public int Plus(int a, int b) { Console.

.net remoting用于应用程序之间通信。

先做一简单的示例:

准备三个项目。

(一)远程对象

新建立类库项目:SelfRemote

public class selfRemoteObject : MarshalByRefObject

{

public int Plus(int a, int b)

{

Console.WriteLine("客户端请求调用:a={0},b={1}",a,b);

Console.WriteLine("计算结果:a+b={0},返回给客户端调用", a+ b);

return a + b;

}  

}

MarshalByRefObject派生,然后完成可远程调用的服务(方法)。然后生成库文件,并把库文件做为服务端与客户端两端的引用库。

(二)服务端

建立控制台应用程序,用于注册通道。(添加对远程对象生成库的引用)

static void Main(string[] args)

{

    HttpChannel _channel = new HttpChannel(10001);

    ChannelServices.RegisterChannel(_channel,false);

 

    Console.WriteLine("http 通道remoting服务开始……");

    RemotingConfiguration.RegisterWellKnownServiceType

(typeof(selfRemoteObject), "selfRemoteObject",

 WellKnownObjectMode.Singleton);

   

    Console.Read();

}

建立Http通道

(三)客户端

添加对远程对象生成库的引用

public void Test()

{

selfRemoteObject app =

(selfRemoteObject)Activator.GetObject(typeof(selfRemoteObject),

"http://localhost:10001/selfRemoteObject");

Console.WriteLine(app.Plus(1,3));

Console.ReadLine();

}

(四)测试

控制台:

客户端请求调用:a=1,b=3

计算结果:a+b=3,返回给客户端调用

 

客户端:

4

 

以一个简单的示例来演示remoting的实现过程。

·在这个例子中,做为远程remoting对象的SelfRemote类库生成库文件,要在两端都引用。

·对于两端的配置可以在以程序的方式进行,也可以以配置文件的方式进行。

博客园大道至简

http://www.cnblogs.com/jams742003/

转载请注明:博客园

目录
相关文章
|
6月前
|
开发框架 前端开发 Java
闲话 .NET(2):.NET 起名的原因、读法和演变
闲话 .NET(2):.NET 起名的原因、读法和演变
|
开发框架 .NET 容器
.NET Core-依赖注入:良好架构的起点
.NET Core-依赖注入:良好架构的起点
|
开发框架 .NET 容器
.net core依赖注入:良好架构的起点
.NET Core使用依赖注入框架来管理服务的依赖与生命周期。
|
安全 Java C#
C#(二十四)之.NET框架
本篇内容记录了.NET框架的一些基本用法。
162 0
C#(二十四)之.NET框架
|
设计模式 C# 数据库
.Net5发布在即,当心技术断层
.Net5发布在即,当心技术断层
264 0
.Net5发布在即,当心技术断层
ArcGIS Runtime for .Net Quartz开发探秘(十):标绘(二维)
本篇博客实现ArcGIS Runtime for .Net Quartz下实现标绘。 标绘内容为直线箭头、曲线箭头、双头钳击箭头、三头钳击箭头、集结地。 箭头标绘 箭头编辑 三维 这里简单拉伸到三维,后续考虑在三维场景下标绘。
1433 0
|
C# 开发者
C# 枚举在项目中的应用“.NET研究”总结
本文主要是我在实际项目中对C#枚举的应用总结,如果存在不足的地方欢迎您指出。      一、枚举基本运用      1、枚举其实可以理解为一个恒量的结合,又或者可以认为它是一种类型。比如以下枚举定义:   public enum MicrosoftTechnology { CSharp, ASPNETMVC, SQLServer, WCF, SilverLight, } 此枚举默认值为int型,当然我们可以根据需要指定枚举的数据类型。
1195 0
|
容器
.NET简谈观察者“.NET研究”模式
  观察者模式想必搞程序开发的都听说过,今天我也来简单的总结一下本人在程序开发过程中是怎么使用观察者模式的;希望给大家带来点新的想法,如果哪位高手看到了也不要嘲笑啊;呵呵,追求技术的人,始终都是为了技术而学技术,目的只有一个,一起追求技术的最高境界。
873 0
.NET“.NET研究”简谈面向接口编程
  过程式的开发方式已逐渐退出大众的眼线,随之而来的是各种各样的高抽象的开发模式;我们不得不承认在没有设计模式的时候,我们很难总结出有价值的开发模型,便于以后重复使用和推广;面向对象的流行,让我们开发人员重新站在一个高的起点来看待软件模型,抽象固然是好事,但是也给初学者带来了迷惑,将软件中的东西都想成很简单的封装,我们只需要调用就行,这样越来越多的开发人员开始慢慢的往上浮,有一定编程经验和感触的人,能够明白我所说的浮,也算上海闵行企业网站设计与制作是给初学者提个醒吧。
993 0
|
图形学 容器
MEF——.NET中值“.NET研究”得体验的精妙设计
  MEF(Managed Extensibility Framework)是.NET Framework 4.0一个重要的库,Visual Studio 2010 Code Editor的扩展支持也是基于MEF构建的。
884 0