VC++ 函数指针实现被动传输数据

    在使用VS2010开发项目时,常常须要实现一些动态的DLL库的开发,其在开发过程当中,须要dll能自动调用回调函数,实现数据传输。所以,在项目中,须要使用到函数的指针,函数的指针能很好的解决该问题。下面采用socket的通讯为例。
socket

    在咱们认知的socket的通讯模型中,其采用cs经典模型,为了使咱们的代码具备更好的可移植复用性,通常讲,socket的直接通讯层进行封装成DLL,做为咱们之后开发的基础类。
函数

            Client                                        Server                                                    设备
spa

                |    ----链接------------------> |                                                              |
线程

                |   < ---响应 ------------------ |   <-----------创建通讯---------------->  |
指针

                |   ----------命令-设置------>  |   <-----------创建获取数据类型------->  |
开发

                |  <-----------响应-----------  |   <---------   传输数据  ---------------     |
回调函数

                |  <-------------响应---------  |   <---------   传输数据  ---------------     |基础

                |  <------------响应----------- |   <---------   传输数据  ---------------     |cli

通讯方式如上图所示,所以,采用函数指针在客户端进行回调,可实现被动传输数据的过程。数据类型

    在客户端的应用中,socket的client的基类DLL保存好,定义的函数指针,并具备回调函数注册功能。在该DLL中采用一个线程,使其能更好的获取设备的数据等。在获取到数据后,按照不一样的数据类型采用不一样的回调函数传输,回调函数在客户端的应用中实现,即实现socket的客户端接收到服务其的数据就自动调用回调函数,在客户端中,直接根据不一样的数据进行处理,不须要采用轮询获取的方式。

    因该问题比较常见实用,所以,做为一个笔记记录下来,文中若有错误,请读者指正。

相关文章
相关标签/搜索