初识Remoting(1)

3 篇文章 0 订阅

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=”北京”),那么就无法正确连接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HongXu_CaiYi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值