C# Remoting获知客户端关闭

C# Remoting获知客户端关闭,第1张

心跳检测,或者信息上报函数即可
心跳检测:服务器每过一个周期定时发送请求,查看客户端是否在线
上报函数:服务器有一个端口专程收听所有的客户端请求,如果监视到某个时间段(例如5分钟)内客户端没有来请求过那么认定下线

remoting 和socket都可以实现推送

例如:服务器段获取后,先分离出数,然后相加,然后发送给客户端。
不过我那个不是C/S的,是点对点的。

补充:服务器,也称伺服器,是提供计算服务的设备。由于服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力。

服务器的构成包括处理器、硬盘、内存、系统总线等,和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。

在网络环境下,根据服务器提供的服务类型不同,分为文件服务器,数据库服务器,应用程序服务器,WEB服务器等。

从 (Component Object Model) 时代到 D(Distributed ) 微软扮演了一个推动者的角色 如果说 提供了一个 Windows 平台上的对象通讯技术 并且逐渐成为应用程序之间彼此通讯及互动的技术主流 那么 D 则是解决了计算机的通信和互动技术 的着眼点是在于同一台计算机上不同应用程序之间的通讯需求 跨到另外一台计算机之外 就不是一开始 所设想到的领域 所幸跨程序的通讯和跨计算机的通讯差异仅在于通讯协议的处理 ( 也就是定位问题 ) 对于数据交换上型别差异的处理并不会因此而有区别 所以要让 的环境能更进一步延伸到跨计算机的领域 只要妥善解决计算机定位的需求 就有机会克服 同样幸运的是 在一开始的设计中完全不去碰触跨计算机的问题 使得要在 的架构之上再架上一层跨计算机的处理环境并不会去破坏到原本的架构 于是 的网络延伸版本 D(Distributed ) 就此出现 专责让 组件可以在网络环境下持续提供服务 D 最主要处理的是两个议题 第一个议题是网络通讯能力 第二个议题则是权限的问题 之前 是在同一台计算机中找特定的组件 而 D 则要更进一步去找网络上的某台计算机 之后沿用 的机制找到计算机上的组件 到了 NET 当中 跨计算机的问题同样也需要对应的技术进行处理 NET Remoting 就是一个对应于 D 的技术 它让存活在不同应用程序域 (AppDomain 一个 NET 中的新概念 ) 不同执行程序 以及不同计算机上的对象能够顺畅的进行沟通协作 在累积了长期以来分布式应用的经验之后 微软没有理由把东西设计的更难用 从某种意义来说 NET Remoting 提供了比过去更易于使用的开发架构 用来来支持跨计算机的沟通作业 省却开发人员建立分布式应用程序时必须花费的心力 不过这样一个 出色 的分布式应用应用框架并没有得到本来应该得到的 待遇 相对于 Java 的 RMI 而言 它更加简单同时保持设计方面的d性 同时摈弃了 D 的一些缺点 在对于一个前后端必须以有状态紧密结合方式进行互动作业 同时又期望呼叫和数据交换的动作上能以最有效的方式进行的环境而言 NET Remoting 是一个比较恰当的选择方案 可是问题在于微软本身对于 XML Web Services 的狂热推崇让 NET Remoting 迷失了本来属于它自己的阵地 也就是说 XML Web Services 的过火让 NET Remoting 忘记了自己应该承担的角色 于是在开发者眼中成为了一个 可有可无 的作品 至少对于很多开发人员而言 在需要创建分布式应用程序的时候首先考虑的是 XML Web Services 而在于企业内部应用 特别是在可以控制服务器和客户端平台的情况下(比如完全基于 NET 平台的应用) Web Service 因为效率等等各个方面的原因并无法体现出优势 从技术本身来讲 NET Remoting 是一个非常出色的架构 但在商业方面 这是一个失败 毕竟 设计一个出色的产品然后束之高阁难免 不像话 NET Remoting 恰恰是这个战略的牺牲品 虽然拥有与生俱来的优点 不过依然生不逢时 Enterprise Services 从一个很直接的感觉来说 Enterprise Services 只是对于 + 的一个包装 从使用方式和技术实现本身而言 和 VB 或者 VC 下使用 + 服务没有本质的区别 而更多的只是在于多了一层托管代码的包装 让 NET 开发人员能够比较顺利的使用这些服务的功能 相对于 J EE 平台上的应用服务器如 BEA 的 WebLogic IBM 的 WebSphere 或者开放源代码的 JBoss 微软是希望能够在企业级应用之中分一杯羹 可是因为先天不足的原因 在企业应用中需要的事务 负载平衡 故障转移等等技术中的表现不是那么尽如人意 至少缺乏非常清晰的应用服务器( Application Server )的概念 虽然微软不止一次的强调 *** 作系统本身就是一个应用服务器 一个 IT 信息的基础结构 但是从开发人员实际的使用来看 这是一个 晦涩难懂 的产品 虽然 NET Framework 改变了很多东西 但是作为企业级应用中最重要的支撑技术——事务和服务 并没有得到同等程度的发展 我想这个也就是很多大型企业应用目前不选择 NET 的一个理由吧 毕竟从 MTS —— + —— Enterprise Services 这一路走来微软始终不是提供一个非常透明的机制让开发人员去控制各个环节(可能和微软一贯以来的策略有关 只是关心最广泛的应用而不是最高端的应用) 而 NET 中的所谓企业服务 和竞争对手提供的相当的 EJB 还是有比较大的差距 这是一个日前的微软无法解决的软肋 Web Service 从一开始 微软就将其作为 重头戏 推出 并且饶有意思的增加了 XML 然后那个 XML Web Services 就成为了 NET 战略中一个非常重要的术语 就如微软的白皮书所言 Microsoft NET 是 Microsoft XML Web Services 平台 微软通过 NET 来改变现有的互联网络结构 Windows 正在走向过去 这样的宣传是在于希望各个子系统之间的通信完全基于 Web Service 那样的话 作为 Win 开发人员一直困扰的组建注册 分发等等一系列问题都能够得到解决 并且能够用更多的语言更多的平台去开发应用 一切皆是 Web Service 这是一个冒进的举动 至少对于 年以前的世界 而这四年以来 虽然 Web Service 有很多很多的优点可以让我们 歌功颂德 但是不是 万金油 比如一直称垢的性能和安全问题也阻碍了 Web Service 一统天下 于是其他分布式应用架构在特定的领域依然能够有自己的生存空间 这一次 微软高估了 Web Service 虽然目前的 NET 是实现 XML Web Services 最好的平台 Visual Studio NET 也提供了从上至下的包装 让开发人员完全可以不关心协议的底层实现 比如 SOAP 比如对象序列化 比如 WSDL 因为一切的一切都可以在 IDE 中自动完成 我们不否认因为 NET Web Service 从概念已经走进应用 而 WSE 的出台更加 Web Service 具备了互 *** 作能力 不过依然无法改变开发人员的观点 只有在企业外网应用集成或者内部异种平台整合的时候才能够体现出优势 在于需要高度响应和服务支持的应用方面 Web Service 只是一个臆造的神话 ASP NET 我们无法否认 这项技术对于开发人员而言是一个颠覆性的改变 从静态的 HTML 到 CGI 再到 ASP/JSP/PHP 时代 我们都必须去了解 HTML 了解 >ChannelServicesRegisterChannel(channel,true); 改成
ChannelServicesRegisterChannel(channel)
服务端和客户端的安全认证应该一致


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13477681.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-14
下一篇 2023-08-14

发表评论

登录后才能评论

评论列表(0条)

保存