动态数据交换(DDE),动态数据交换(DDE)原理是什么?

数据通信

6人已加入

描述

动态数据交换(DDE),动态数据交换(DDE)原理是什么?

动态数据交换(DDE)是建立在Windows内部消息系统、全局原子和共项全局内存基础上的一种协议,可用来协调Windows应用程序之间的数据交换和命令调用。DDE协议通过对使用消息参数wParam和lParam来传递全局原子和全局共享内存句柄的方式的精确定义,使其能在进程间传递更多的信息,增强进程间共享数据和处理数据的能力。通常DDE主要用来传递那些不需要用户经常干涉的数据流。在建立原始链路后,有关的应用程序即将其接管过去,而无需用户进一步的介入。DDE所提供的是一种更加集成的工作环境。

动态数据交换

DDE的实现需要有两个应用程序参与一个“对话”以便交换信息。提供数据和执行命令的一方被指定为服务器,获取数据的一方称为客户。服务器和客户机是程序在一次具体会话中的角色,其区别在于所能启动的“事务”类型的不同。对于每一个DDE对话,会话双方要指定或专门建立维护会话的不可见DDE窗口以负责对DDE消息的处理。一个DDE对话是由参与会话的窗口句柄来标识的。正因如此,任何一个窗口都不应当参与与其他窗口只的多于一个的DDE对话。如果在一个客户和服务器之间存在多个对话过程,必须为每一个新的对话过程在一对一的基础上提供一个附加窗口。

图1 DDE会话事务流程

在任何通信中,通信双方都必须统一所交换数据的标识和格式。DDE协议采用的是由服务、主题和项目组成的一个三级层次命名来对DDE所传数据单元进行标识。一个特定的DDE会话唯一地由其服务名和主题名进行定义。在初始化一个DDE对话时,由DDE客户询问此特定DDE服务器的应用程序名和主题名。通常是将使用服务器应用程序的可执行文件名作为服务名。DDE的主题分类是一个包含多个数据项的普通数据类型。有效的主题及项目的选择由DDE服务器任意设置。由于客户和服务器窗口一起来识别一个DDE对话,因此在对话过程中不能改变应用程序或主题。但却可以在需要的时候对项目名称进行更改。DDE的事务   DDE对话是在两个进程之间进行的一种逻辑连接,通过这种连接可以进行数据交换。在客户和服务器之间进行的每一次会话都是由一系列事务所构成的。对于每个事务可以包含一个数据请求/数据服务和一个对应的响应。DDE服务器和客户所能启动的事务是不同的。服务器只能启动两种事务:向客户发送一个项目和终止一次对话;而DDE客户则可以启动如下八种服务:枚举DDE服务及主题、与服务器建立一次对话、向服务器请求一个项目、与服务器建立一个数据连接、终止数据连接、请求服务器执行一个或多个命令、向服务器发送一个数据项和终止一次会话。

图1给出了一个典型的DDE会话事务流程。由于DDE对话是由客户程序启动的,因此在客户程序启动对话前要确保DDE服务器程序已投入运行。客户首先启动会话,服务器程序响应客户的请求并向客户发送数据,客户方则可以主动向服务器发送数据,并要求与服务器建立热/温数据链路。此后客户可以向服务器发送命令并要求服务器执行。客户和服务器中的任何一方均有权利要求对方结束此次对话。在进行这些事务处理时,必须严格按照消息接收顺序去进行处理。当应用程序在等待DDE响应而无法处理另一个请求时,会发出一条表示忙的WM_DDE_ACK消息。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分