信道、接收器、接收链和信道接受提供程序

椭圆曲线点加的推导公式(一) 椭圆曲线点加推导过程 阅读详情

Channel, Sink, Sink Chain and Channel Sink Provider

 

为了扩展.Net Remoting,定制接收器(Sink)和信道接受提供程序(Channel Sink Provider),改变.Net Remoting的缺省行为,需要先了解.Net Remoting的相关概念及其运行机制。

 

下面先了解一些基本概念:

 

信道(Channel)-是跨远程处理边界(无论是在应用程序域、进程还是计算机之间)在应用程序之间传输消息的对象。信道可以在终结点上侦听入站消息,向另一个终结点发送出站消息,或者两者都可以。

信道必须实现 IChannel 接口,该接口提供诸如 ChannelName 和 ChannelPriority 这样的属性。专用于在特定端口上侦听特定协议的信道实现 IChannelReceiver,而专用于发送信息的信道实现 IChannelSender(注:IChannelReceiver和IChannelSender接口都继承IChannel 接口)。TcpChannel 和 HttpChannel 对象都实现这两种接口,因此它们可用于发送或接收信息。

.Net Remoting Framework提供了TcpChannel 和 HttpChannel两个信道的实现。

 

在发送消息之前或接收消息之后,信道(Channel)沿着信道接收对象链(a chain of channel sink objects)发送每个消息。该接收链(sink chain)包含基本信道功能所需的接收器(Sink)(如格式化程序接收器FormatterSink、传输接收器TransportSink或堆栈生成器接收器StackBuilderSink),但是您可以自定义信道接收链以便用消息或流执行特殊任务。

 

信道接收链(Sink Chain)处理任何发送到应用程序域或从应用程序域发送的消息。此时,您只有消息,但是您可以任意操作该消息,而后面的处理将使用您在处理之后返回给系统的消息。这是实现日志记录服务、任何种类的筛选器或者客户端或服务器上的加密或其他安全措施的理所当然的位置。以下插图显示基本信道接收链的结构。



每个信道接收器(Channel Sink)都处理流,然后将流传递到下一个信道接收器,这意味着您的接收器之前或之后的对象应当知道该如何处理传递给它们的流。(Sink/Channel Sink是同一个描述。)

StackBuilderSink 对象是服务器上远程对象前的最后一个消息接收器。

 

每个信道接收器(Channel Sink)或者实现 IClientChannelSink,或者实现 IServerChannelSink。客户端上的第一个信道接收器还必须实现 IMessageSink。它通常实现 IClientFormatterSink(它从 IMessageSink、IChannelSinkBase 和 IClientChannelSink 继承),并被称作格式化程序接收器(Formatter Sink),因为它将传入的消息转换为流(IMessage 对象)。

 

信道接收提供程序(Channel Sink Provider)-(实现 IClientChannelSinkProvider、IClientFormatterSinkProvider 或 IServerChannelSinkProvider 接口的对象)负责创建远程处理消息所流过的信道接收器(Channel Sink)。当远程类型被激活后,将从信道(Channel)中检索信道接收提供程序(Channel Sink Provider);然后在该接收提供程序上调用 CreateSink 方法以检索链上的接收器中的第一个Sink。

 

信道接收器(Channel Sink)还负责在客户端和服务器之间传输消息。信道接收器也链接在一起而形成一个链。当在接收提供程序上调用 CreateSink 方法时,该方法应该执行以下操作:

·         创建它自己的信道接收器。

·         在链中的下一个接收提供程序上调用 CreateSink。

·         确保下一个接收器和当前的接收器链接在一起。

·         将其接收器返回到调用方。

信道接收器负责将在它们上面进行的所有调用转发到链中的下一个接收器,并且应当提供用于存储对下一个接收器的引用的机制。

 

自定义信道接收器(Custom Channel Sinks)

自定义信道接收器被插入到格式化程序接收器(FormatterSink)和最后一个传输接收器(TransportSink)之间的对象链中。

 

传输接收器(TransportSink)

传输接收器是客户端上的链中最后一个接收器和服务器端上的链中第一个接收器。除了传输序列化的消息,传输接收器还负责将标头(Header)发送到服务器并在调用从服务器返回时检索标头和流。这些接收器内置在信道中,并且无法扩展。

 

简要总结.Net Remoting Infrastructure机制:

1,代理对象(Proxy)负责转发对Remote Objects的调用。

2,消息对象(Message Objects)用来调用Remote Methods的数据。

3,信道接收器(Sink/Channel Sink)用来远程方法调用(Remote method calls)处理消息。

4,信道接收提供程序(Channel Sink Provider)-一般用来将接收器(Sink)插入到信道接收链(Sink Chain)中。

5,格式化程序接收器FormatterSink-用来序列化/反序列化消息格式,进行传递。

6,传输接收器TransportSink-用来在进程或AppDomain之间传递序列化的消息。

 

Reference:

1, MSDN, .NET Framework 开发员指南, 接收器和接收链

 

 
手把手教你学simulink(26.7)--控制算法场景示例:基于模型预测控制(MPC)的智能温室环境控制系统 首先,我们需要将温室环境的动力学模型转换为状态空间形式。假设我们有四个状态变量:温度 TT、湿度 HH、光照强度 II 和二氧化碳浓度 CCO2CCO2​,以及四个控制输入:加热器功率 u1u1​、加湿器加湿量 u2u2​、通风扇风速 u3u3​ 和补光灯光照强度 u4u4​。状态空间模型可以表示为:x(t)=[T(t),H(t),I(t),CCO2(t)]Tx(t)=[T(t),H(t),I(t),CCO2​(t)]T 是状态向量。 阅读详情

相关推荐

ADS高级技巧:用DAC控件实现多变量参数扫描(以S参数和阻抗匹配为例)

本文深入解析了ADS软件中DAC控件的高级应用,指导用户如何利用其实现多变量参数扫描。通过构建支持多变量的MDF文件,并将其与原理图变量动态映射,可以高效完成如S参数和阻抗匹配等复杂场景的联合仿真与可视化分析,显著提升射频电路设计的效率和深度。

3a9bq4r8t2y的博客 254

【EZSocket】亿赛通电子文档安全管理系统

加密模式 有两种加密模式: 1、全加密,只要发现磁盘有新的文件生成或修改,且文件大小大于18字节,则加密。如果1字节也加密很容易知道加密规则容易被暴力破解,所以只针对18字节以上的文件进行加密。所以可以简单的存放一些较短字符串 2、特定格式文件加密 在服务器对指定用户的指定文件进行加密,用户只能通过指定的app 来打开或编辑app 1、只针对文件大于 18字节的文件加密 完全卸载 1、卸载驱动 计算机/管理->计算机管理/系统工具/设备管理器 Jungo - EZSocketGOT、

少莫千华 8613

欢乐熊大话蓝牙知识16:蓝牙是怎么找设备的?扫描与广播的“对话内幕”

蓝牙是怎么找设备的?扫描与广播的对话技术介绍

hoony123的博客 1382

HttpChannel 与 TcpChannel

HttpChannel 类     HttpChannel 类使用 SOAP 协议将消息传输到远程对象或者从远程对象传输消息。所有消息都通过 SoapFormatter 对象来传递,消息在这里被更改为 XML 并被序列化,所需的 SOAP 标头将添加到流中。也可以指定二进制格式化程序,这会产生二进制数据流。然后,数据流会使用 HTTP 协议传输到目标统一资源标识符 (URI)。HttpChanne

simonezhlx的专栏 3647

微信数据库读取解密脚本 聊天记录查看工具,支持所有微信版本,后期将支持企业微信[Windows]

(1)获取微信昵称、微信账号、微信手机号、微信邮箱、微信KEY的基址偏移(2)获取微信的微信昵称、微信账号、微信手机号、微信邮箱、微信KEY、微信原始ID(wxid_******)(3)获取微信文件夹路径(4)支持查看聊天记录查看(5)根据key解密微信数据库(6)提供数据库部分字段说明(7)支持微信多开场景,获取多用户信息等(8)微信需要登录状态才能获取数据库密钥(9)支持导出聊天记录为html,备份微信聊天记录,方便查看(10)合并多个数据库,方便查看。

weixin_43101935的博客 1万+

实用电路精讲系列---快速精密桥式放大器电路

快速精密桥式放大器通过惠斯通电桥转换物理量为差分信号,经仪表放大器精密放大,具有高共模抑制、低噪声和宽带宽特性。其核心包含:电桥传感器转换、仪表放大器信号调理(增益可调、温漂补偿)、输出级适配ADC。典型应用包括智能断路器监测、胎压检测、电池安全预警等10大领域,需注意传感器-放大器-ADC最短路径布局。实用电路采用LT1057S和LT1010构建,实现稳定供电、差分处理、功率放大和桥式驱动,满足高精度、快速响应需求。该技术在工业控制、医疗设备等领域具有重要价值。

weixin_40590799的博客 1419

关于remoting

Remoting的通道有两种Tcp和HTTP,在.net种, System.Runtion.Remoting.Channels种定义了IChannel接口,IChannel接口包括 了TcpChannel通道类型和Http通道类型。 TcpChannel类型放在名字空间System.Runtime.Remoting.Channels.Tcp种。Tcp 通道提供了基于Socket的传输工具,使用Tcp协议来跨越Remoting边界传输序列 化的小溪流,TcpChannel类型默认使用二进制格式序列化

hebeijg的专栏 699

ESD镜像解密与转换全攻略:从esd-decrypter到WinNTSetup的完整流程

本文详细解析了ESD镜像的加密特性与压缩优势,并提供了从解密到转换的完整实战指南。核心步骤包括使用esd-decrypter工具解密ESD文件为WIM格式,以及如何结合WinNTSetup进行灵活的系统安装或进一步封装为可引导的ISO镜像,帮助用户高效处理官方Windows安装镜像。

weixin_29207439的博客 455

DRV8818PWPR与采样电阻R7KA8D2KFLCAC的高精度步进驱动设计

步进电机驱动中的电流闭环控制,是实现微秒级响应、低失步率和高定位精度的核心技术基础。其原理依赖于高精度采样电阻与专用驱动IC构成的实时电流反馈环路,技术价值体现在±3%以内电流检测误差、32kHz以上环路带宽及1.5μs级PWM闭环响应能力。典型应用于协作机器人关节、精密装配平台、工业视觉引导系统等对动态响应与热稳定性要求严苛的场景。本文聚焦DRV8818PWPR驱动芯片与R7KA8D2KFLCAC金属膜采样电阻的协同设计,深入解析电流检测架构、供电稳定性、PCB布局规范及EMC抑制策略。

weixin_34253126的博客 373

【机器人路径规划】基于改进型A*算法的机器人路径规划(Python代码实现)

本文针对传统A算法在机器人路径规划中存在的搜索效率低、路径不平滑等问题,提出了一种改进型A算法。该算法通过引入跳点搜索(JPS)技术优化子节点扩展方式,结合贝塞尔曲线或B样条曲线进行路径平滑处理,并采用动态启发式函数和自适应邻域搜索策略,显著提升了路径规划的效率和路径质量。实验结果表明,改进型A*算法在复杂环境下能有效减少搜索节点数量,缩短路径长度,提高路径平滑性,且具备动态避障能力。

2501_92867626的博客 1583

Vivado 2018.3 SDK烧写bin文件避坑指南:如何解决QSPI模式下的常见错误

本文深入解析了在Vivado 2018.3 SDK中为Zynq FPGA烧写QSPI Flash时遇到的常见问题,特别是启动模式为QSPI时出现的警告与失败。文章从Zynq启动机制入手,提供了修改FSBL代码以强制使用JTAG模式、调整硬件配置等核心解决方案,并分享了实战案例与最佳实践,帮助开发者高效避坑,确保bin文件烧写成功。

arduino9maker的博客 390
上一篇: .Net Remoting配置文件的用法
下一篇: .Net Remoting中Remote Server的Port占用/释放问题
JavaProgramers
博客等级 码龄22年 660粉丝 304原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值