Remoting学习笔记
来源:互联网 发布:霸主软件骗局 编辑:程序博客网 时间:2024/05/15 12:10
一:--------------------Dll Remotable类
public class RemotableClass:MarshalByRefObject
{
...
}
二:----------------------remoting服务端注册remotable类
服务器通过两种静态方法来注册:
RegisterActivatedServiceType RegisterWellKnownServiceType
eg:注册Remotableclasss
RemotingConfigration.RegisterWellknowServiceType(
Typeof(RemotableClas), //指能远程化的类
"RemoutObject", //Remotable类的URI
WellkownOjectMode.SingleCall //激活模式 为每个客户端创建一个新的实例 WellkownObjectMode.SingleTon 为所有客户端创建一个RemotableClass实例来处理所有客户端的调
用
);
三:---------------------------服务端创建,注册一个通道
System.Runtime.Remoting.Channels.Tcp.TcpServerChannel:可以接受远程客户端的TCP连接
System.Runtime.Remoting.Channels.Http.HttpServerChannel:接受Http连接
EG:使用.NET框架
创建一个 1234 端口监听的 TcpServerChannel通道,并用.NET框架注册
TcpServerChannel channel=new TcpServerChannel(1234);
ChannelService.RegisterChannel(channel);
HttpServerChannel channel=new HttpServerChannel(1234);
ChannelService.RegisterChannel(channel);
四:-----------------------------客户端创建远程类的一个实例,也必须做一些注册
1:必须创建并注册一个客户端通道,
.net客户端通道类型:
TcpClientChannel HttpClientChannel
2:new 远程对象前提 将远程对象注册到本地应用程序域
RemotingConfiguration.RegisterWellKownClientType 在客户端注册一个类
RemotingConfiguration.RegisterWellKownServiceType 在服务器上注册一个类
EG:
TcpClientChannel channel=new TcpClientChannel();
ChannelServices.RegisterChannel(channel);
RemotingConfiguration.RegisterWellKownClientType(
Typeof(RemotableClass),
"tcp://localhost:1234/RemoteObject"
);
五:-------------------------------客户端 new 一个代理
//在客户端应用程序域中产生一个代理,返回RemotableClas的一个引用
RemotableClass rc=new RemotableClass();
EG:ClockServer
配置文件可以读取AppConfig
RemotingConfiguration.Configure("TimeServer.exe.config");
TimeServer.exe.config
<configuration>
<system.runtime.remoting>
<applicatoin>
<service>
<wellkown mode="SingleCall" type="Clock,ClockServer" object="Clock">
</service>
<channels>
<channel ref="tcp server" port="1234">
</channels>
</application>
</system.runtime.remoting>
</configuration>
激活方式的差别
服务器端激活对象
RegisterWellKownServiceType RegisterWellKownClientType
客户端激活对象
RegisterActivateServiceType RegisterActivateClientType
1:创建时间不同
2:客户端激活可以用非缺省构造函数,服务端激活不支持非缺省够着
使用new操作符只是创建一个代理,并没有创建实际对象
客户端激活对象可通过new同时创建代理和对象
3:客户端和对象如何联系在一起的
WellKownObjectMode.SingleCall/Singleton(注意线程同步)
使用客户端激活远程对象时 该对象只为此客户端服务,可在多次调用间保持状态
例子:StopWatch 记录一个start 和一个stop的调用 查看每个客户端激活类型的差别
- .Net Remoting学习笔记
- Remoting 学习笔记
- Remoting学习笔记
- C#学习笔记:.NET Remoting
- dubbo学习笔记 十四 dubbo-remoting
- Remoting 笔记
- Remoting学习
- Remoting学习
- [ASP.NET学习笔记之二十七]实战.NET Remoting
- Webcast.NET Remoting学习笔记(3)对象激活
- rocketmq学习笔记 五 源码之rocketmq-remoting
- Remoting 笔记 3-31
- 开始学习.net remoting
- 学习.NET remoting 啦!
- Remoting学习一
- .Net Remoting学习
- Spring.NET学习笔记20——整合Remoting(应用篇) Level 200
- Spring.NET学习笔记20——整合Remoting(应用篇)
- S-DES算法java实现(源码下载)
- 阿斯蒂芬
- 谈谈服务器的编码问题
- 明星软件工程师的10种特质——来自cnBata
- Thinking in Java笔记3
- Remoting学习笔记
- "Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/helpers/NOPLoggerFactory"错误解决方法
- 调整状态 努力学习
- 明星软件工程师的10种特质——来自cnBata
- 号召C语言高手赐教啊
- js操作frame
- 房源
- Windows PowerShell 2.0语言开发之脚本块
- Jquery与其它js框架(MooTools以及Prototype、Dojo、YUI等等)之间共享冲突的解决办法