.Net Remoting 实例

别再只做游戏了!用虚幻引擎5(UE5)给你的工厂车间做个数字双胞胎(附数据对接教程) 本文详细介绍了如何利用虚幻引擎5(UE5)构建工业数字孪生系统,实现工厂车间的智能可视化。通过UE5的高质量渲染和实时数据处理能力,结合OPC UA和MQTT协议,打造高效的数据对接方案,提升异常识别和设备管理效率。文章还分享了模型优化、可视化设计及典型工业场景的实战案例,助力企业迈向工业4.0。 阅读详情

先简要地讨论远程对象和一个简单的客户机/服务器应用程序,该程序使用了远程对象。执行的远程对象是Hello。 HelloServers是服务器上应用程序的主类,HelloClient是客户上应用程序的主类,如下图所示:


第一步:创建远程的共享库

为了说明.Net Remoting 是如何运行的,先创建一个简单的类库,以创建远程的对象。

依次点击“文件”->“新创建”->“工程”,选择创建一个C# Library,并将其命名为RemoteHello,然后点击OK按钮。这将创建一个.Net Remote客户端和服务器端用来通讯的“共享命令集”。


程序集的名称是RemoteHello.dll,类的名称是Hello, 类Hello是从

System.MarshallByRefObject 派生出来的。


程序集的完整代码 Hello.cs为:

using System;
namespaceWrox.ProCSharp.Remoting
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>

public class Hello : System.MarshalByRefObject
{
public Hello()
{
//
// TODO: 在此处添加构造函数逻辑
//
Console.WriteLine("Constructor called");
}

~Hello()
{
Console.WriteLine("Destructor called");
}

public string Greeting(string name)
{
Console.WriteLine("Greeting called");
return "Hello," + name;
}
}
}

编译创建的工程,就会得到一个DLL文件,并可以在其他的工程中使用它。

第二步:创建简单的服务器

创建一个C#控制台应用程序HelloServer 。 为了使用TcpServerChannel类,必须引用

System.Runtime.Remoting程序集,另外更重要的是,引用上面创建的RemoteHello程序集。

在Main()方法中,用端口号8086创建一个 System.Runtime.Channels.Tcp信道,该信道

使用System.Runtiem.Remoting.Channels.ChannelServices注册,使之用于远程对象。


在远程对象注册之后,使服务器一直处于运行状态,直到按任意键为止:

HelloServer.cs的完整代码为:

using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Tcp;

namespaceWrox.ProCharp.Remoting
{
publicclass HelloServer
{
[STAThread]
public static void Main(string[] args)
{
TcpServerChannel channel = new TcpServerChannel(8086);
ChannelServices.RegisterChanel(channel);
RemotingConfiguration.RegisterWellKnownServiceType( typeof(Hello),"Hi",

WellKnownObjectMode.SingleCall);

System.Console.WriteLine("hit to exit");
System.Console.ReadLine();
}
}

}

名字空间是对象所需要的。请记住,如果得到System.Runtime.Remoting.Channels.Tcp名字空间不存在的信息,请检查是否象上面的代码那样添加了对System.Runtime.Remoting.dll的引用。


第三步: 创建简单的客户机

客户机也是一个C#控制台应用程序 HelloClient. 这里也引用了System.Runtime.Remoting

程序集,以便使用TcpClientChannel类。 此外,也必须引用RemoteHello程序集。

在客户机程序中,要创建一个TcpClientChannel对象,这个对象注册在ChannelServices 中。

对于TcpChannel,使用默认的构造函数,因此可以选择任意一个端口。接下来使用Activator类把代理对象返回给远程对象。

HelloClient.cs 的完整代码为:

using System;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Tcp;

namespace Wrox.ProCSharp.Remoting
{
/// <summary>
/// HelloClient 的摘要说明。
/// </summary>

public class HelloClient
{
[STAThread]
public static void Main(string[] args)
{
ChannelServices.RegisterChannel(new TcpClientChannel());
Hello obj = (Hello)Activator.GetObject(typeof(Hello),"tcp://localhost:8086/Hi");
if (obj == null)
{
Console.WriteLine("could not locate server");
return;
}

for(int i=0;i<5; i++)
{
Console.WriteLine(obj.Greeting("Christian"));
}
}
}
}

当打开服务器和客户机程序Hello时,Christian在客户控制中会出现5次。在服务器应用程序的控制台窗口中,会看到类似的下图的窗口输出结果

 

免ROOT、不刷机、不依赖Xposed实现Android改机的思路 最近在一个项目中需要模拟多种Android设备的环境。无奈市面上的大部分改机工具,要么需要ROOT权限,要么依赖Xposed,甚至还得重启设备。为了实现更灵活、更干净的改机方式,我开始了漫长的技术探索,最终找到了免ROOT、不刷机、拒绝Xposed的实现路径。Android_IDIMEI手机序列号手机型号、品牌、CPU型号等硬件信息GPS位置、Wi-Fi参数、通话记录、短信等软硬件数据这些信息通常用于标识设备唯一性,而改机就是对这些标识数据进行模拟或篡改。 阅读详情

相关推荐

<硬件设计> 阻抗设计(二) 使用Si9000计算阻抗

阻抗设计(二) 使用Si9000计算阻抗

杰克拉力船长个人博客 1万+

.NET Remoting 最简单示例

学习技术知识一个好的方法是先动手,再深入, 给出一个最简单的Remoting程序示例(C#)如下: Step1:创建类库(DLL)工程RemotingObjects,类Person代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; using Syste

李燕军的专栏 2万+

告别付费!手把手教你用DataV.GeoAtlas获取全国街道级GeoJSON数据(附完整避坑指南)

本文详细介绍了如何免费使用阿里云DataV.GeoAtlas工具获取全国街道级GeoJSON数据。通过可视化选取、格式转换、数据校验等步骤,提供了一套完整的避坑指南和工作流,帮助前端和可视化开发者高效解决高精度地图数据获取难题,节省成本并提升开发效率。

weixin_29085865的博客 900

.net Remoting简单实例

一、实用类:1、System.MarshalByRefObject :      系统中远程调用的对象必须是从MarshalByRefObject对象中派生出来的;2、System.Runtime.Remoting.Channels.Tcp.TcpServerChannel :      服务器端的Tcp信道;3、System.Runtime.Remoting.Channels.Htt

rock的专栏 869

S32DS3.5图形化配置实战:从零构建S32K144通信接口工程

本文详细介绍了如何使用S32DS3.5图形化配置工具从零构建S32K144通信接口工程。通过实战演示引脚配置、时钟树设置、SPI接口搭建等关键步骤,帮助开发者快速掌握NXP S32K系列开发技巧,提升嵌入式开发效率。特别针对S32DS3.5版本的新特性进行了深度解析,包括智能代码生成和调试优化方法。

weixin_26834815的博客 200

Tesseral 建立地震模型

0. 前言 本节内容主要是总结如何使用 Tesseral 工具建立模型。 1. 模型建立步骤 设置模型的宽度和深度 此处默认都为1000,之后点击“确定” 建立地层 绘制新的地层 右键点击“New polygon” 绘制地层,设置第二个层的名字和纵波速度 绘制第三层,第三层覆盖在前一个层上 第四层如上,第四层如果是最后一层,绘制该层时,要将深度1000包围。 设置观测系统 设置炮点 设置子波为雷克子波,频率设置为30 检波点设置 运行模型 设置好如上选择后,

weixin_41857483的博客 6539

.Net Remoting 入门

关于.Net Remoting的一点总结AA)Remoting和WebService都是.Net提供的远程访问的方法,Remoting具有以下几个优点1、Tcp通道的Remoting速度非常快2、虽然是远程的,但是非常接近于本地调用对象3、可以做到保持对象的状态4、没有应用程序限制,可以是控制台,winform,iis,windows服务承载远程对象缺点:1、不是标准的应用,因此有平台限制

doubleyou的专栏 6460

vLLM 多机多卡推理测试与验证(Kubernetes)vLLM 多机多卡推理 Kubernetes 验证

本文记录在两台 L20 机器,每台机器 4 块 L20 显卡(46G)的环境下,使用 vLLM 部署 Qwen2.5-32B-Instruct-GPTQ-Int4 模型并提供多节点多卡推理服务的过程。服务(Serving)模型服务是指将模型部署到生产环境中,通过 API 或其他接口提供预测服务的过程。【分布式推理与服务】(Distributed Inference and Serving)是指在多个机器或设备之间部署和管理机器学习模型,以高效地处理推理请求并满足大规模服务需求。3、启动 vLLM 服务。

流水_鱼鱼的博客 3459

.net remoting的重要概念

 NET Remoting 中有很多非常眩目的新名词,听起来就有些令人望而却步,但当明白了它们的真正含义时就会发现其实他们是那么的简单。我最近一直在学习 .NET Remoting,就感觉到了这一点。由于没有太多好的中文书籍(其实英文的也不多),学起来颇费了一番周折,起初被这些名词搞得云雾缭绕,然后通过在网上搜集大量的资料,才逐渐弄清了这些概念的真正意思,现将一些 .NET Remoting

jasonvip_c的专栏 1096

rfid标签技术原理

奇怪的是,RFID标签技术原理的深入剖析不仅揭示了其背后的奥秘,也让我们更加全面地认识到这一技术在数字化转型中的重要性和潜力。随着技术的不断进步和应用场景的不断拓展,RFID标签将在更多领域发挥重要作用,为物联网、智能制造等领域的发展注入新的活力。这意味着在一个读写器的覆盖范围内,可以同时读取多个RFID标签的数据,大大提高了数据收集的速度和效率。:RFID标签的“大脑”,负责存储和处理数据。芯片内部集成了存储器、控制逻辑和射频接口等电路,能够接收来自读写器的射频信号,执行相应的数据处理和通信任务。

x3088的博客 2159

保姆级QFIL线刷教程:从驱动安装到成功刷机的完整避坑指南(Win10/11实测)

本文提供了一份详细的QFIL线刷教程,涵盖从驱动安装到成功刷机的完整流程,特别针对Win10/11系统进行了实测。文章重点解决了EDL模式下的常见问题,如Download Fail和COM Port识别错误,并提供了实用的避坑技巧和故障排除方案,帮助用户实现零失误操作。

weixin_29245767的博客 765

.NET Remoting

AppDomain:是程序集的容器,一个进程中可包含多个AppDomain,一个AppDomain可以存在多个程序集。 .NET Remoting:是.NET平台上允许存在于不同AppDomain中的对象可以相互通信的基础设施,调用对象被称为客户端,被调用对象称为服务器端。两个不同的AppDomain可能存在于:同一进程;同一机器上的两个不同进程;不同机器上的两个不同进程; 在.NET Remoting中,每个通信协议都封装成了一个信道对象,.NET Framework实现了封装HTTP、TCP以及用于

372

python实现Markowitz模型 (附完整源码)

python实现Markowitz模型 (附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 405

.NET Remoting 使用总结

Remoting技术的应用        根据需求,我们的系统必须以C/S方式构建,而且是三层架构,这样一来,就出现了服务器端和客户端通信的问题。                为了解决双方的通信问题,还要考虑效率、性能等方面,经过分析、试验,我们根据效率、移植、开发难易等几个因素,舍弃了一开始提出的WebService、消息队列机制,以及有人建议的基于流I/O自己解析数据的通信方式,在

流年轻逝 3313

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

简析Java RMI 与 .NET Remoting

简析Java RMI 与 .NET RemotingJava与.NET都提供了远程处理功能,但不完全相同.Java远程处理是通过一个“共享接口”实现的,而.NET可以通过一个“共享命令集”实现。下面就这两种方式来具体说明。Java 远程处理 Java远程方法调用(RMI)提供了Java程序语言的远程通讯功能,这种特性使客户机上运行的程序可以调用远程服务器上的对象,使Java编程人员

popkiler的专栏 943

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

[原创].NET Remoting: 如何通过Remoting实现双向通信(Bidirectional Communication)

Remoting是NET平台下比较成熟高效的分布式技术,我们习惯采用传统的远程调用的方式使用Remoting。在客户端所在的Application Domain,我们通过Proxy(Transparent Proxy)远程地跨Application Domain调用一个方法。当来自Client端的调用请求通过Proxy到达Server端所在的Application Domain后,R

artech的专栏 4817

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

浅谈.net remoting 与 webservice

1. .NET Remoting   .NET Remoting是微软随.NET推出的一种分布式应用解决方案,被誉为管理应用程序域之间的 RPC 的首选技,它允许不同应用程序域之间进行通信(这里的通信可以是在同一个进程中进行、一个系统的不同进程间进行、不同系统的进程间进行)。   更具体的说,Microsoft .NET Remoting 提供了一种允许对象通过应用程序域与另一对象

王浩然的博客 500

简要地写出一个.NET Remoting的示例

【考点】 .NET Remoting程序的原理,.NET Remoting的基本编写方法。 【解答】 在VS 2008中添加新的类库项目,并命名为NetRmClass,将所属解决方案命名为NetRm,勾选“创建解决方案的目录”。这样,NetRmClass类库项目目录即属于NetRm解决方案,并可以继续向该解决方案添加更多的其他相关项目。类库项目在这里仅用于创建一个远程对象的类,将项目中的cs

Android-Idea 1404

[Remoting] .NET Remoting

.NET Remoting 是一种分布处理方式。从微软的产品角度来看,可以说Remoting就是DCOM的一种升级,改善了很多功能,并与.Net平台很好的融合。.Net Remoting提供了一种允许对象跨应用程序域(即穿越边界)与别一对象进行交互框架。.NET Remoting 封装了分布式开发的消息编码和通讯方式,让我们用非常简单的方式既可完成不同模式的分布系统开发,同时其可配置、...

diangang3082的博客 247

.net Remoting

本文摘自http://www.cnblogs.com/DebugLZQ/archive/2012/07/30/2614815.html 1. .NET Remoting   .NET Remoting是微软随.NET推出的一种分布式应用解决方案,被誉为管理应用程序域之间的 RPC 的首选技,它允许不同应用程序域之间进行通信(这里的通信可以是在同一个进程中进行、一个系统的不同进程间进行...

dhpiy86426的专栏 202

回顾.NET Remoting分布式开发

记得在下第一次接触.NET Remoting分布式开发是在2003年,那时候是Framework1.0初次亮相之时,Remoting分布式开发是Framework1.0其中一个亮点。经过多年的发展,在2005年,WCF随着Framework2.0首先亮相。WCF是结合Remoting,Web服务,TCP/IP套接字,MSMQ信息,P2P,WSE等多方通讯的混合体。随着WCF的出现是否意昧着Remoting即将没落,答案是否定的。因为Remoting有其独到之处,在通讯效率,信息交换,安全性等多方面都有其特点

风尘浪子 2427

.NET Remoting的学习之路

想了好久,语言表达能力还是不行,想写点关于.NET Remoting的理论知识,水平还是不够。虽然自己能看懂别人的文章,但是自己理解的不够深刻,所以只能给个网址和自己写的例子,例子我会详细的讲解。详细的理论http://www.codesky.net/article/doc/200803/2008032665782082.htm。看例子之前我要说两句,对初涉此道的人希望有些帮助,当初学

guxiaoshi的专栏 1095
上一篇: RealAudio控件播发视频文件
下一篇: C#数据库事务原理及实践
goding
博客等级 码龄23年 20粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值