動態數據交換(DDE),動態數據交換(DDE)原理是什么?
動態數據交換(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%
相關閱讀:
- [電子說] 您的存儲器堆疊了嗎?—賽靈思推出16GB HBM FPGA 2023-10-24
- [存儲技術] 三星電子和SK海力士計劃四季度全面提高DDR5產量 2023-10-24
- [電源/新能源] 能提高響應速度與連接穩定性的U6773H開關電源芯片 2023-10-23
- [電子說] 使用LLVM-embedded-toolchain-for-Arm-17.0.1開發STM32 2023-10-23
- [電子說] Addict:一個寫起來令人極其舒適的字典模塊 2023-10-21
- [電子說] LTE系統TDD無線幀結構特點 2023-10-21
- [電子說] ROS部署PaddlePaddle的CV模型 2023-10-20
- [電子說] 什么是數字中頻?FPGA怎么實現數字中頻? 2023-10-21
( 發表人:admin )