【.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 ...
随机推荐
- 你所不了解的css选择器补充
div p和div>p的区别 1.div p选择 <div> 元素内部的所有 <p> 元素 2.div>p选择父元素为 <div> 元素的所有 < ...
- java进程
package com.process; public class ProcessTest { public static void main(String[] args) { new Proce ...
- javascript sort排序
var arr = [5,32,28,66,2,15,3]; arr.sort(function(a1,a2){ return a1-a2; //a2-a1 输入倒序 }); console.log( ...
- Draw2d中的布局管理器Layout比较
最近在研究Eclipse中的GEF开发,在跟着GEF-whole-upload教程做一个GEF应用程序的例子时,发现Figure上的控件无法显示,谷歌了很久也没找到解决方案,最后终于发现是Layout ...
- Windows7下MySQL5.6.15免安装版的配置(来自yang362046076)
1.下载mysql-5.5.20-win32.zip,解压到D:\dev,D盘的dev文件夹下就会出现mysql-5.5.20-win32目录,将其重命名为mysql. 2.配置MYSQL的环境变量 ...
- java多线程什么时候释放锁—wait()、notify()
由于等待一个锁定线程只有在获得这把锁之后,才能恢复运行,所以让持有锁的线程在不需要锁的时候及时释放锁是很重要的.在以下情况下,持有锁的线程会释放锁: 1. 执行完同步代码块. 2. 在执行 ...
- ZendFramework 两种安装方式
1. 在线安装(基于composer) Zend 应用程序骨架 GitHub 地址: https://github.com/zendframework/ZendSkeletonApplication ...
- 重读LPTHW-Lesson1-14
1.python print 可以用"Hello World",也可以用'Hello World',或者”””Hello World ””” 2.要打印在一行,可以在改行后加英文逗 ...
- 【iOS开发】collectionView 瀑布流实现
一.效果展示 二.思路分析 1> 布局的基本流程 当设置好collectionView的布局方式之后(UICollectionViewFlowLayout),当系统开始布局的时候,会调用 pre ...
- Android中SensorManager.getRotationMatrix函数原理解释
SensorManager是Android中的一个类,其有一个函数getRotationMatrix,可以计算出旋转矩阵,进而通过getOrientation求得设备的方向(航向角.俯仰角.横滚角). ...