您好,欢迎来电子发烧友网! ,新用户?[免费注册]

您的位置:电子发烧友网>电子百科>通信技术>数据通信>

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

2010年03月18日 15:23 www.elecfans.com 作者:佚名 用户评论(0

动态数据交换(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消息。

非常好我支持^.^

(111) 95.7%

不好我反对

(5) 4.3%

( 发表人:admin )

      发表评论

      用户评论
      评价:好评中评差评

      发表评论,获取积分! 请遵守相关规定!