【.NetRemoting-3】2015.09.18
【Remoting程序的基本实现】
【一】服务程序集
【1】服务对象必须要求继承【MBR,MarshalByRefObject】
【二】服务端应用程序
【1】注册通道
【两种类型的通道】
【A】发送请求的通道,要求实现IChannelSender 接口
【B】接受请求的通道,要求实现IChannelReceiver 接口
【.Net提供的内置通道】==>均实现了IChannelSender,IChannelReceiver,IChannel
【HttpChannel】
==>可实现跨防火墙
==>【消息】通过【SOAP】格式化
【TcpChannel】
==>无法跨防火墙
==>【消息】通过【二进制】格式化
【IcpChannel】
==>不能跨计算机,只能在同一台计算机内跨线程访问。
==>底层基于【命名管道,Named Pipe】
【代码实现】
【A】实例化Channel对象
==>两种构造Channel对象的方法
【B】使用ChannelServices.RegisterChannel(channelobj,bool)注册通道
【2】注册类型==>告知客户端,宿主应用程序域中哪些对象是可以被客户端访问到的
【服务对象的三种激活方式】
【1】客户端激活
【2】服务端激活Singleton【Server activated Singleton】
【3】服务端激活SingleCall【Server activated SingleCall】
【代码实现】
==>使用RemotingConfiguration.RegisterActivatedServiceType(type)【客户端激活】方法
==>使用RemotingConfiguration.RegisterWellKnowServiceType(type,"objUri",activatType)【服务端激活方式】
【3】对象位置
客户端如何知道对象位置?==>URL
【RemotingConfiguration.ApplicationName】属性
【URL形式】
【Service Activated】
==> protocal://hsotadress:port/ApplicationName/ObjectUrl
【Client Activated Object】
==> protocal://hsotadress:port
==> protocal://hsotadress:port/ApplicationName
【三】客户端程序==>Only One Task
===>获取远程对象,调用远程对象方法。
【步骤】
【A】注册类型==>告知.Net该对象应该是在服务端注册的,而非在本地
==>客户端类型注册与服务端类型注册的方法类似【使用RemotingConfiguration】
==>使用RemotingConfiguration.RegisterActivatedClientType(type,uri)【客户端激活】方法
==>使用RemotingConfiguration.RegisterWellKnowClientType(type,"uri")【服务端激活方式】
【B】new操作符创建对象
【2】其他创建远程对象的方法
==>【RemotingServices.Connect()】==>简单,较为常用,只能调用无参构造函数,获取对象的同时创建代理
==>【Activator.GetObject()】==>简单,较为常用,只能调用无参构造函数,获取对象的同时创建代理
==>【Activator.CreateInstance()】==>可调用有参构造函数,但只能创建客户激活对象。
【.NetRemoting-3】2015.09.18的更多相关文章
- 【.NetRemoting-2】2015.09.17
[Remoting架构] [1]是.NetFramework的一个重要组成 [2]框架的两个重要特性 [A]基本实现[B]可扩展/可定制 [各个组成部分] [1][客户端,客户端应用程序域] [组成] ...
- 【Unity|C#】基础篇(18)——正则表达式(Regex类)
[学习资料] <C#图解教程>:https://www.cnblogs.com/moonache/p/7687551.html 电子书下载:https://pan.baidu.com/s/ ...
- 【转帖】2015年2月份最佳的免费 UI 工具包
2015年2月份最佳的免费 UI 工具包 设计师们最喜欢 UI 工具包,这是一种思路拓展的方法,同时可以利用它们来解决各种复杂的项目,同时可用来了解其他设计师的风格.这里我们收集了最近这一个月一些最棒 ...
- 【直播预告】7月18日3D游戏引擎免费公开课答疑,參与送C币!
喜讯喜讯! 为了酬谢广大学员.CSDN学院特推出iOS和3D游戏引擎开发免费技术答疑公开课,让您度过一个充实的暑假~ 參与本次公开课,即有机会获得50C币! 答疑公开课时间:7月18日 晚7:30-9 ...
- 【英语学习】2016.09.11 Culture Insider: Teacher's Day in ancient China
Culture Insider: Teacher's Day in ancient China 2016-09-10 CHINADAILY Today is the 32nd Chinese Te ...
- Python基础教程【读书笔记】 - 2016/7/18
希望通过博客园持续的更新,分享和记录Python基础知识到高级应用的点点滴滴! 第七波:第3章 字符串 介绍如何使用字符串格式化其他的值,并简单了解一下利用字符串的分割.联接.搜索等方法能做些什么. ...
- 【python基础】第09回 数据类型内置方法 01
本章内容概要 1.数据类型的内置方法简介 2.整型相关方法 3.浮点型相关方法 4.字符串相关方法 5.列表相关方法 本章内容详情 1.数据类型的内置方法简介 数据类型是用来记录事物状态的,而事物的状 ...
- 【.Net Remoting-1】
[.NetRemoting]2015.09.16 [分布式应用程序] 应用程序分布在不同计算机上,通过网络来共同完成一项任务 C/S架构[模式] [互操作性,Interoperability]又称[互 ...
- NPOI2.2.0.0实例详解(十)—设置EXCEL单元格【文本格式】 NPOI 单元格 格式设为文本 HSSFDataFormat
NPOI2.2.0.0实例详解(十)—设置EXCEL单元格[文本格式] 2015年12月10日 09:55:17 阅读数:3150 using System; using System.Collect ...
随机推荐
- Nohttp网络请求数据,Post以及Get的简单实用以及设置缓存文字的的请求
开局声明:这是基于nohttp1.0.4-include-source.jar版本写的教程 由于nohttp功能强悍,因此需要多种权限,仅仅一个联网的权限是不够的,如果只给了Internet的权限,去 ...
- 写一个Windows上的守护进程(7)捕获异常并生成dump
写一个Windows上的守护进程(7)捕获异常并生成dump 谁都不能保证自己的代码不出bug.一旦出了bug,最好是崩溃掉,这样很快就能被发现,若是不崩溃,只是业务处理错了,就麻烦了,可能很长时间之 ...
- tomcat7.0的源码下载
如果想知道servlet的HttpServlet的实现细节,想知道jsp的org.apache.jasper.runtime.HttpJspBase的实现细节,想知道tomcat关于servlet和j ...
- linux访问windows共享文件夹的两种方法
有时需要在linux下需要访问windows的共享文件夹,可以使用mount挂载或者使用samba连接. 1.mount挂载 首先创建被挂载的目录: $ mkdir windows 将共享文件夹挂载到 ...
- 【solr专题之四】关于VelocityResponseWriter
一.关于Velocity的基本配置 在Solr中,可以以多种方式返回搜索结果,如单纯的文本回复(XML.JSON.CSV等),也可以返回velocity,js等格式.而VelocityResponse ...
- 基于cygwin构建u-boot(二)gcc的C语言标准版本号(-std=)
接上文,修改Makefile和config.mk中,.depend相关文件格式后继续编译. 四.tools文件夹的文件编译错误 错误告警如下[多行信息,请使用右侧滚动条查看]: gcc -Wall - ...
- 1008 Gnome Tetravex
练习使用DPS的题,不知道有无别的做法,思路不复杂.形式是统计并且进行数字配对. #include <stdio.h> ][],note[],ans[]; void ini(){ int ...
- jQuery中$符号冲突问题 (转载)
Jquery的$命名冲突: 在Jquery中,$是JQuery的别名,所有使用$的地方也都可以使用JQuery来替换,如$('#msg')等同于JQuery('#msg') 的写法.然而,当我们引入多 ...
- jQuery开发经验实例笔记
jQuery获取文件选择输入框的扩展名 var file=$("input[name='file']").val() var filename=file.replace(/.*(\ ...
- Python打印格式化与字符串
关于Python打印格式化与字符串,比较全面的总结,希望对大家有帮助~ # -*- coding: cp936 -*- ''' 打印格式 ''' print "a" print & ...