初识Remoting(1)
来源:互联网 发布:手机淘宝怎么修改折扣 编辑:程序博客网 时间:2024/06/14 20:32
1、什么是.Net Remoting
定义:.Net remoting 是简化网络通讯的技术,底层仍然是TCP等东西
remoting要添加对System.Runtime.Remoting的引用
.net Remoting中走的是二进制数据,因此必须一个描述服务端方法的接口类库。
2、简单使用
1、新建接口项目,定义服务接口。
注意:remoting要添加对System.Runtime.Remoting的引用
2、新建服务器端项目(控制台的,或者WinForm,或者Windows服务等)
定义实现服务接口的类,还要继承继承自MarshalByRefObject类
服务器启动时调用
//注册通道,通过TCP的9999端口对外提供服务
TcpChannel tcpChannel = new TcpChannel(9999);
ChannelServices.RegisterChannel(tcpChannel);
//注册服务:第一个参数为服务的实现类,第二个参数为父母的名字。
RemotingConfiguration.RegisterWellKnownServiceType(typeof(TestServiceImpl),"test", WellKnownObjectMode.Singleton);
注册服务。如果控制台程序,控制不要让程序退出,
//主要目的是不要让服务器退出
while (true)
{
string s = Console.ReadLine();
if (s == "quit")
{
return;
}
}
3、客户端:新建客户端项目,引用服务接口
TcpChannel tcpChannel = new TcpChannel();
ChannelServices.RegisterChannel(tcpChannel, false);
ITestService test = (ITestService)Activator.GetObject(typeof(ITestService), "tcp://127.0.0.1:9999/test");//第一个参数为服务实现的接口,第二个参数为服务的地址:最后一部分是服务在服务器端RegisterWellKnownServiceType时第二个参数的名字
然后就可以调用服务端方法了。
因为.net remoting或者普通SocKet可以走8888,9999。…,不能走80,因为80已经被web服务器占用.基于安全考虑,也尽量不要再防火墙上开新的端口 .我们需要一种走80端口的通讯方式,这个程序就要运行在IIS上.
自己用ashx来做一个所谓的WebService,比较麻烦,请求的时候需要按照协议来拼请求报文,处理请求的时候也要从QueryString中取参数.如果在不知道服务器端要求的报文格式(method=getweather&city=”北京”),那么就无法正确连接
- 初识Remoting(1)
- 初识用.NET Remoting开发分布式应用
- Akka2使用探索1(Remoting)
- 初识用.NET Remoting来开发分布式应用
- 初识用.NET Remoting来开发分布式应用
- 初识用.NET Remoting来开发分布式应用
- 初识用.NET Remoting来开发分布式应用
- 初识用.NET Remoting来开发分布式应用
- 初识用.NET Remoting来开发分布式应用
- .net Remoting小结1
- 简单Remoting例子(1)
- Remoting 全接触1
- Remoting实战(一)
- remoting
- Remoting
- Remoting
- remoting
- remoting
- PHP变量先定义后使用,关闭短标签
- 用户界面测试指南
- iptables移植
- ruby的线程和进程
- WEB性能
- 初识Remoting(1)
- web功能测试篇
- Java中使用正则表达式校验字符串
- 讀取、寫入、刪除 SIM card裡的電話簿
- 程序员学会调试 是一门技术
- 编译模块 android
- 拆掉思维里的墙
- 在Ribbon中使用自定义图像。
- 多语言文本编辑器EmEdtor