VC++ 函數指針實現被動傳輸數據

    在使用VS2010開發項目時,常常須要實現一些動態的DLL庫的開發,其在開發過程當中,須要dll能自動調用回調函數,實現數據傳輸。所以,在項目中,須要使用到函數的指針,函數的指針能很好的解決該問題。下面採用socket的通訊爲例。
socket

    在咱們認知的socket的通訊模型中,其採用cs經典模型,爲了使咱們的代碼具備更好的可移植複用性,通常講,socket的直接通訊層進行封裝成DLL,做爲咱們之後開發的基礎類。
函數

            Client                                        Server                                                    設備
spa

                |    ----鏈接------------------> |                                                              |
線程

                |   < ---響應 ------------------ |   <-----------創建通訊---------------->  |
指針

                |   ----------命令-設置------>  |   <-----------創建獲取數據類型------->  |
開發

                |  <-----------響應-----------  |   <---------   傳輸數據  ---------------     |
回調函數

                |  <-------------響應---------  |   <---------   傳輸數據  ---------------     |基礎

                |  <------------響應----------- |   <---------   傳輸數據  ---------------     |cli

通訊方式如上圖所示,所以,採用函數指針在客戶端進行回調,可實現被動傳輸數據的過程。數據類型

    在客戶端的應用中,socket的client的基類DLL保存好,定義的函數指針,並具備回調函數註冊功能。在該DLL中採用一個線程,使其能更好的獲取設備的數據等。在獲取到數據後,按照不一樣的數據類型採用不一樣的回調函數傳輸,回調函數在客戶端的應用中實現,即實現socket的客戶端接收到服務其的數據就自動調用回調函數,在客戶端中,直接根據不一樣的數據進行處理,不須要採用輪詢獲取的方式。

    因該問題比較常見實用,所以,做爲一個筆記記錄下來,文中若有錯誤,請讀者指正。

相關文章
相關標籤/搜索