做开发很久了 Remoting 一直没有碰过,正好最近的项目上面用,就拿出来给大家看看
首先 Remoting 严格来说分为3个部分, 服务端 ,客户端,中间件,中间件是指把要公布的方法和接口写成dll的形式,给客户端和服务端调用。
不说其他的了 ,直接上代码
RemotingModel 中间件 是建立的类库程序
Talker.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace RemotingModel
{
public class Talker : MarshalByRefObject
{
/// <summary>
/// 说话
/// </summary>
/// <param name="word"></param>
public void Talk(string word)
{
System.Console.WriteLine(word);
}
}
}
此类中就写了一个方法, 然后要公布出去 用的 MarshalByRefObject
RemotingServer 服务端 是用的控制台程序
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Tcp;
using RemotingModel;
namespace RemotingServer
{
class Program
{
static void Main(string[] args)
{
//RemotingConfiguration.Configure(Application.ExecutablePath);
//注册通道
TcpServerChannel channel = new TcpServerChannel("TalkChannel", 8090); //端口随便取
ChannelServices.RegisterChannel(channel, true);
//注册远程对象
RemotingConfiguration.RegisterWellKnownServiceType(
typeof(Talker),
"Talker",
WellKnownObjectMode.SingleCall);
Console.WriteLine("请不要关此程序,3Q");
Console.ReadLine();
}
}
}
RemotingClient 客户端 是winform程序
我的客户端用的是一个窗体
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Tcp;
using RemotingModel;
namespace RemotingClient
{
public partial class Form1 : Form
{
private Talker _talk = null;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
try
{
//注册通道
TcpClientChannel channel = new TcpClientChannel();
ChannelServices.RegisterChannel(channel, true);
//获取远程对象
_talk = (Talker)Activator.GetObject(typeof(Talker), "TCP://10.4.21.121:8090/Talker");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void btn_Send_Click(object sender, EventArgs e)
{
try
{
//操作远程对象
_talk.Talk(txtWord.Text.Trim());
txtContent.Text = "发送成功" + txtWord.Text.Trim();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
}
上面就是一个简单的remoting 结构的程序做完了,其实很简单的
代码下载 http://download.csdn.net/detail/zuoming120/3696247
做开发很久了 Remoting 一直没有碰过,正好最近的项目上面用,就拿出来给大家看看相关推荐
- 我们已经不用 AOP 做日志很久了!
前言 用户在操作我们系统的过程中,针对一些重要的业务数据进行增删改查的时候,我们希望记录一下用户的操作行为,以便发生问题时能及时的找到依据,这种日志就是业务系统的操作日志. 本篇我们来探讨下常见操作日 ...
- HDU 4379 水题,大水,但我WA了很多次,做了很久
http://blog.csdn.net/diannaok/article/details/7875086?reload 我是看着他的写的,但是有个小错误,在初始化值时,令>L/2中最大的数的初 ...
- 推送(Push)做了这么久还是误入“歧途”——MobPush
在移动操作系统中,App可以实现消息推送(push)的功能.push是能够起到提醒或者唤醒用户的作用的,也是app运营渠道之一,运用得当可以帮助产品运营人员更高效地实现运营目标,相反盲目运用也会让AP ...
- 我也不知道怎么回事_刚上场说做php的_女嘉宾把灯全灭了,这位程序员哥哥 其实我觊觎你很久了...
原标题:这位程序员哥哥 其实我觊觎你很久了 激动人心的周五又来啦 羊(zui)驼(mei)小编闪亮出场 请自觉在评论区 燥起来 分别两周 亲爱的猿猿 有米有想我丫 想我的请敲1 不想的请敲2 哼哼 ( ...
- PHP做闹钟APP,私藏很久的4款效率APP,一个比一个好用,30万网友推荐
原标题:私藏很久的4款效率APP,一个比一个好用,30万网友推荐 平时学习工作的过程中,怎么才可以敢为人先,快人一步?我想你需要几款有趣又高效的APP来帮你,今天给大家分享4款效率APP,帮助你更好地 ...
- 虚拟光驱的开发者斟酌了很久
在给这篇文章起标题的时候,虚拟光驱的开发者斟酌了很久,因为虚拟光驱的开发者个人是反对使用".NET程序员"."C++程序员"或"PHP程序员" ...
- 为什么在 Google Play 发布应用很久了下载量却很少?
很多应用发布了很久依然搜索不到,大家知道发布到 Google Play 之后有一个月的推荐时期,但是如果应用的需求量本身不是很大或者 ASO 做的太差也不会被搜索到,关注我的应该都是个人开发者,大多数 ...
- 求建议:二本计算机专业,考研还是就业做开发?
安老师好: 我是一个大连某二本院校的在读生,专业是计算机+日语强化.上大学以来一直关注着您的公众号,读了很多您的文章,学到很多东西,也受到过您的鼓舞,随您一同成长进步. 目前我已是大三下,站在第二个人 ...
- 【转载】一个硕士程序员的求婚日记——做开发的不是木头人!
纪念3月6日:求婚时单腿下跪 我的膝盖青了一块! 七年, 或许小学毕业,步入初中: 或许从本科到硕士,步入社会: 或许从小工到专家,步入事业高峰: 或许,或许,还有更多! 我们在一起,其实已 ...
最新文章
- windows pxe 安装linux,菜鸟学Linux 第103篇笔记 pxe自动化安装linux
- python的优缺点有哪些-Python语言的优缺点有哪些
- fluentftp 积极拒绝_【新时代文明实践】光明街道光大社区开展“光盘行动 拒绝浪费 从我做起”新时代文明实践活动...
- obj: object是什么意思_面试官问你JavaScript基本类型时他想知道什么?
- 苹果菠萝笔html5游戏在线玩,苹果菠萝笔游戏
- btree索引和hash索引的区别(待更新)
- 【Ubuntu】ubuntu系统下python3和python2环境自由切换
- 2亿用户背后的Flutter应用框架Fish Redux
- java算法提高求最大值_藍橋杯 算法提高 求最大值
- 最适合说故事的插画素材,应用到UI设计中,感情线有了!
- Python序列基本操作(二)
- 七日Python之路--第十一天
- 人生值得珍藏的80句话
- javascript笔记——图片大小检测
- 百度关键词快排虚拟发包程序-SEO快速排名系统
- php连接mysql MariaDB_PHP+MariaDB数据库操作基本技巧
- 做在线交易你必须知道的关于支付的知识
- 她学术造假导致导师自杀,后将这段学术经历出书贩卖,一年收入上百万...
- 一文拿捏:正则表达式
- Nacos服务端ip地址修改