本发明涉及一种软件前端与后端程序连接方法,属于软件技术领域。
背景技术:
目前,许多软件均具备前端界面与后端程序交互式开发的能力,这使得软件的设计与开发更加方便快捷。尽管如此,由于其中一部分这类软件的界面与控件已不进行更新,从而使得设计的软件界面脱离了当前用户的需求。很多大型工程采用此类软件进行编写,由这类软件编写出来的程序特点是功能实现准确,但用户界面过于陈旧,因此软件后端程序与前端界面分别编写并实现二者的连接是亟待解决的问题。因此提出了一种软件前端与后端连接方法,对软件界面的使用与设计需求具有一定的应用价值。
动态链接库作为共享函数的一种方式,可以让后端程序调用动态链接库文件使其加载其他软件设计的前端界面,实现原有软件界面的更替,并根据tcp/ip协议实现数据与命令的发送与接收,进而实现了软件前端与后端程序分离。
tcp/ip(tcp/ipprotocolsuite)协议是一个网络通信模型,为互联网的基础通信架构。
动态链接库文件又称“应用程序拓展”文件,是一种共享类型文件,可以实现软件的跨语言编写,使得开发过程独立、耦合度小。
技术实现要素:
为解决上述技术问题,本发明为实现上述目的所采用的一种软件后端台程序与前端台界面连接方法。
本发明采用如下技术方案:一种软件前端与后端连接方法,分别在前端、后端建立前端通信模块、后端通信模块,使前端和后端根据tcp/ip协议通信,并且后端通过动态链接库文件启动前端界面,包括以下步骤:
后端通信模块与前端通信模块通信;
加载模块通过动态链接库文件获取前端接口函数地址并调用,使后端启动前端界面。
所述前端通信模块执行以下步骤:
在前端建立套接字,设置套接字的ip地址及端口;
建立接收函数,接收来自后端通信模块的数据包并解析得到设备状态数据,将设备状态数据进行分类,然后显示在前端的界面上的控件中;
建立发送函数,然后将含有操控命令的数据包发送至后端通信模块端口。
所述后端通信模块执行以下步骤:
建立套接字,设置与前端套接字相同的ip地址,设置后端端口;
建立接收函数,接收来自前端通信模块的含有操控命令的数据包并解析,得到操控命令;
建立发送函数,并设置定时器,定时将后端的设备状态数据进行打包,发送至前端端口。
所述加载模块执行以下步骤:
建立动态链接库文件,包括前端建立的对外接口函数、前端界面程序;
加载动态链接库文件,获取到前端的对外接口函数地址;
启动该函数,运行前端界面。
一种软件前端与后端连接系统,分别在前端、后端建立前端通信模块、后端通信模块,使前端和后端根据tcp/ip协议通信,并且后端通过动态链接库文件启动前端界面,包括:
后端通信模块,用于与前端通信模块通信;
前端通信模块,用于与后端通信模块通信;
加载模块,设置于后端,用于通过动态链接库文件获取前端接口函数地址并调用,使后端启动前端界面。
所述前端通信模块执行以下步骤:
在前端建立套接字,设置套接字的ip地址及端口;
建立接收函数,接收来自后端通信模块的数据包并解析得到设备状态数据,将设备状态数据进行分类,然后显示在前端的界面上的控件中;
建立发送函数,然后将含有操控命令的数据包发送至后端通信模块端口。
所述后端通信模块执行以下步骤:
建立套接字,设置与前端套接字相同的ip地址,设置后端端口;
建立接收函数,接收来自前端通信模块的含有操控命令的数据包并解析,得到操控命令;
建立发送函数,并设置定时器,定时将后端的设备状态数据进行打包,发送至前端端口。
所述加载模块执行以下步骤:
建立动态链接库文件,包括前端建立的对外接口函数、前端界面程序;
加载动态链接库文件,获取到前端的对外接口函数地址;
启动该函数,运行前端界面。
本发明具有以下优点和有益效果:
本发明通过动态链接库文件共享接口函数,实现了软件前后端的跨语言编写;本发明通过tcp/ip通信协议实现前端界面与后端的数据与命令传输,实现了前端与后端的连接,降低了软件前后端耦合度。
附图说明
图1是本发明的方法图。
图2是本发明实施方法流程图。
具体实施方式
下面结合附图及实例对本发明做进一步的详细说明,其中该实例后端程序采用mfc编写,前端界面采用qt编写,tcp/ip通信协议采用udp。
如图1所示,本发明具体如下:
1、前端界面和通信的设计与配置
编写前端界面,根据tcp/ip协议编写通信程序,实现前端界面数据的发送与接收;编写对外接口函数;生成前端界面对应的动态链接库文件。
2、软件后端程序设计与通信
编写软件后端程序;根据tcp/ip协议编写与前端界面相匹配的通信程序;
设置定时器,使后端定时发送数据或命令;设置数据接收触发事件,对接收到的数据或命令进行解析。
3、后端逻辑加载动态链接库文件
将动态链接库文件及关联文件移植到后端;后端程序加载动态链接库文件,获取对外接口函数地址并启动该函数。
水下机器人仿真软件中需要对当前仿真潜器模型的位置、姿态等进行数据的实时显示与更新,并需要发布操控命令于潜器,该软件采用mfc框架设计完成,由于开发时采用mfc固有界面进行设计,界面相对老旧,无法满足当下仿真软件的需求。
本发明在设计过程中涉及两个软件,前端界面软件(软件一)、后端逻辑软件(软件二),包含三个软件模块,软件一的通信模块,软件二的通信模块,以及动态链接库文件加载模块;
软件一的通信模块:
1、在软件一建立套接字类,设置其ip地址及端口;
2、根据tcp/ip协议,建立接收函数,接收来自软件二实时计算的数据包,解析数据包,并将其进行分类,然后显示在软件一的界面控件中;
3、根据tcp/ip协议,建立发送函数,根据软件一的显示结果,进行分析,然后发送带有相应操控命令的数据包至软件二端口;
软件二的通信模块:
1、在软件二中建立套接字,设置与软件一相同的ip地址,设置软件二端口;
2、根据tcp/ip协议,建立接收函数,接收来自软件一的操控命令数据包,解析数据包得到操控命令后对软件二的相关参数进行调整;
3、根据tcp/ip协议,建立发送函数,并设置定时器,定时地将软件一的计算数据进行打包,发送至软件一端口;
动态链接库文件加载模块
1、在软件一中建立对外接口函数,生成对应动态链接库文件;
2、在软件二加载动态链接库文件,获取到软件一对外接口函数的地址;
3、启动该函数,运行前端界面;
如图2所示,本发明一种软件前端与后端连接方法实例,包括以下几个步骤:
第一步:qt端的通信模块,描述如下:
创建qudpsocket类实例,ip地址设置为“127.1.0.1”,端口设置为6901;利用writedatagram(constchar*data,qint64size,quint16port)发送遥控指令,其中data为操控命令数据包,其中数据的第一个字节标识符为‘5’,port设为端口号6900;利用readdatagram(char*data,qint64maxsize)函数实现后端发送数据的接收,其中data为接收到的数据包,编写程序解析数据包并将数据显示在qt界面控件上;
第二步:mfc端的通信模块
创建socket类实例,并设置套接字ip地址为“127.1.0.1”,端口号为6900,设置发送数据的第一个字节标识符为‘5’;并设置定时器,使mfc定时通过sendto(ints,constvoid*buf,intlen,unsignedintflags,conststructsockaddr*to,inttolen)函数发送数据包,其中buf为发送数据包的指针,to为发送的端口地址;recvfrom(ints,void*buf,intlen,unsignedintflags,conststructsockaddr*from,intfromlen)函数接收qt端发送的操控命令,其中buf为接收数据包的指针,from为接收的端口地址,将接收到的数据进行解析。
第三步:mfc端动态链接库加载模块
利用qt编写对外接口函数,并在接口函数中编写界面显示函数,然后运行该工程生成动态链接库文件,将动态链接库文件及其关联文件(qt5core\qt5gui\qt5network\qt5widgets)复制到mfc工程中;mfc程序使用loadlibrarya函数加载动态链接库文件,getprocaddress函数获取对外接口函数地址并运行该函数,实现qt端界面的显示。
1.一种软件前端与后端连接方法,其特征在于,分别在前端、后端建立前端通信模块、后端通信模块,使前端和后端根据tcp/ip协议通信,并且后端通过动态链接库文件启动前端界面,包括以下步骤:
后端通信模块与前端通信模块通信;
加载模块通过动态链接库文件获取前端接口函数地址并调用,使后端启动前端界面。
2.根据权利要求1所述的一种软件前端与后端连接方法,其特征在于,所述前端通信模块执行以下步骤:
在前端建立套接字,设置套接字的ip地址及端口;
建立接收函数,接收来自后端通信模块的数据包并解析得到设备状态数据,将设备状态数据进行分类,然后显示在前端的界面上的控件中;
建立发送函数,然后将含有操控命令的数据包发送至后端通信模块端口。
3.根据权利要求1所述的一种软件前端与后端连接方法,其特征在于,所述后端通信模块执行以下步骤:
建立套接字,设置与前端套接字相同的ip地址,设置后端端口;
建立接收函数,接收来自前端通信模块的含有操控命令的数据包并解析,得到操控命令;
建立发送函数,并设置定时器,定时将后端的设备状态数据进行打包,发送至前端端口。
4.根据权利要求1所述的一种软件前端与后端连接方法,其特征在于,所述加载模块执行以下步骤:
建立动态链接库文件,包括前端建立的对外接口函数、前端界面程序;
加载动态链接库文件,获取到前端的对外接口函数地址;
启动该函数,运行前端界面。
5.一种软件前端与后端连接系统,其特征在于,分别在前端、后端建立前端通信模块、后端通信模块,使前端和后端根据tcp/ip协议通信,并且后端通过动态链接库文件启动前端界面,包括:
后端通信模块,用于与前端通信模块通信;
前端通信模块,用于与后端通信模块通信;
加载模块,设置于后端,用于通过动态链接库文件获取前端接口函数地址并调用,使后端启动前端界面。
6.根据权利要求5所述的一种软件前端与后端连接系统,其特征在于,所述前端通信模块执行以下步骤:
在前端建立套接字,设置套接字的ip地址及端口;
建立接收函数,接收来自后端通信模块的数据包并解析得到设备状态数据,将设备状态数据进行分类,然后显示在前端的界面上的控件中;
建立发送函数,然后将含有操控命令的数据包发送至后端通信模块端口。
7.根据权利要求5所述的一种软件前端与后端连接系统,其特征在于,所述后端通信模块执行以下步骤:
建立套接字,设置与前端套接字相同的ip地址,设置后端端口;
建立接收函数,接收来自前端通信模块的含有操控命令的数据包并解析,得到操控命令;
建立发送函数,并设置定时器,定时将后端的设备状态数据进行打包,发送至前端端口。
8.根据权利要求5所述的一种软件前端与后端连接系统,其特征在于,所述加载模块执行以下步骤:
建立动态链接库文件,包括前端建立的对外接口函数、前端界面程序;
加载动态链接库文件,获取到前端的对外接口函数地址;
启动该函数,运行前端界面。
技术总结