CN111240773A - 一种软件前端与后端连接方法 - Google Patents
一种软件前端与后端连接方法 Download PDFInfo
- Publication number
- CN111240773A CN111240773A CN201811438863.1A CN201811438863A CN111240773A CN 111240773 A CN111240773 A CN 111240773A CN 201811438863 A CN201811438863 A CN 201811438863A CN 111240773 A CN111240773 A CN 111240773A
- Authority
- CN
- China
- Prior art keywords
- communication module
- software
- function
- establishing
- interface
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/543—User-generated data transfer, e.g. clipboards, dynamic data exchange [DDE], object linking and embedding [OLE]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明涉及一种软件前端与后端连接的方法,该方法的主要内容包括:前端部分遵循TCP/IP协议编写双向通信子模块,并将前端生成为动态链接库文件;后端部分也遵循TCP/IP协议编写与前端进行双向通信的子模块,并且后端部分调用前端生成的动态链接库文件启动前端,从而使前端与后端建立基本连接。利用动态链接库使前端仅负责获取后端数据并刷新,后端仅对数据进行分析和逻辑处理,使得软件前后端开发过程独立,降低了软件耦合度及软件后期的维护成本和维护时间。前端和后端生成的双向通信子模块构成了前后端通信的中间层,该中间层实现了前后端跨平台跨语言的连接。
Description
技术领域
本发明涉及一种软件前端与后端程序连接方法,属于软件技术领域。
背景技术
目前,许多软件均具备前端界面与后端程序交互式开发的能力,这使得软件的设计与开发更加方便快捷。尽管如此,由于其中一部分这类软件的界面与控件已不进行更新,从而使得设计的软件界面脱离了当前用户的需求。很多大型工程采用此类软件进行编写,由这类软件编写出来的程序特点是功能实现准确,但用户界面过于陈旧,因此软件后端程序与前端界面分别编写并实现二者的连接是亟待解决的问题。因此提出了一种软件前端与后端连接方法,对软件界面的使用与设计需求具有一定的应用价值。
动态链接库作为共享函数的一种方式,可以让后端程序调用动态链接库文件使其加载其他软件设计的前端界面,实现原有软件界面的更替,并根据TCP/IP协议实现数据与命令的发送与接收,进而实现了软件前端与后端程序分离。
TCP/IP(TCP/IP Protocol Suite)协议是一个网络通信模型,为互联网的基础通信架构。
动态链接库文件又称“应用程序拓展”文件,是一种共享类型文件,可以实现软件的跨语言编写,使得开发过程独立、耦合度小。
发明内容
为解决上述技术问题,本发明为实现上述目的所采用的一种软件后端台程序与前端台界面连接方法。
本发明采用如下技术方案:一种软件前端与后端连接方法,分别在前端、后端建立前端通信模块、后端通信模块,使前端和后端根据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(const char*data,qint64 size,quint16port)发送遥控指令,其中data为操控命令数据包,其中数据的第一个字节标识符为‘5’,port设为端口号6900;利用readDatagram(char*data,qint64 maxSize)函数实现后端发送数据的接收,其中data为接收到的数据包,编写程序解析数据包并将数据显示在QT界面控件上;
第二步:MFC端的通信模块
创建SOCKET类实例,并设置套接字IP地址为“127.1.0.1”,端口号为6900,设置发送数据的第一个字节标识符为‘5’;并设置定时器,使MFC定时通过sendto(int s,constvoid*buf,int len,unsigned int flags,const struct sockaddr*to,int tolen)函数发送数据包,其中buf为发送数据包的指针,to为发送的端口地址;recvfrom(int s,void*buf,int len,unsigned int flags,const struct sockaddr*from,int fromlen)函数接收QT端发送的操控命令,其中buf为接收数据包的指针,from为接收的端口地址,将接收到的数据进行解析。
第三步:MFC端动态链接库加载模块
利用QT编写对外接口函数,并在接口函数中编写界面显示函数,然后运行该工程生成动态链接库文件,将动态链接库文件及其关联文件(Qt5Core\Qt5Gui\Qt5Network\Qt5Widgets)复制到MFC工程中;MFC程序使用LoadLibraryA函数加载动态链接库文件,GetProcAddress函数获取对外接口函数地址并运行该函数,实现QT端界面的显示。
Claims (8)
1.一种软件前端与后端连接方法,其特征在于,分别在前端、后端建立前端通信模块、后端通信模块,使前端和后端根据TCP/IP协议通信,并且后端通过动态链接库文件启动前端界面,包括以下步骤:
后端通信模块与前端通信模块通信;
加载模块通过动态链接库文件获取前端接口函数地址并调用,使后端启动前端界面。
2.根据权利要求1所述的一种软件前端与后端连接方法,其特征在于,所述前端通信模块执行以下步骤:
在前端建立套接字,设置套接字的IP地址及端口;
建立接收函数,接收来自后端通信模块的数据包并解析得到设备状态数据,将设备状态数据进行分类,然后显示在前端的界面上的控件中;
建立发送函数,然后将含有操控命令的数据包发送至后端通信模块端口。
3.根据权利要求1所述的一种软件前端与后端连接方法,其特征在于,所述后端通信模块执行以下步骤:
建立套接字,设置与前端套接字相同的IP地址,设置后端端口;
建立接收函数,接收来自前端通信模块的含有操控命令的数据包并解析,得到操控命令;
建立发送函数,并设置定时器,定时将后端的设备状态数据进行打包,发送至前端端口。
4.根据权利要求1所述的一种软件前端与后端连接方法,其特征在于,所述加载模块执行以下步骤:
建立动态链接库文件,包括前端建立的对外接口函数、前端界面程序;
加载动态链接库文件,获取到前端的对外接口函数地址;
启动该函数,运行前端界面。
5.一种软件前端与后端连接系统,其特征在于,分别在前端、后端建立前端通信模块、后端通信模块,使前端和后端根据TCP/IP协议通信,并且后端通过动态链接库文件启动前端界面,包括:
后端通信模块,用于与前端通信模块通信;
前端通信模块,用于与后端通信模块通信;
加载模块,设置于后端,用于通过动态链接库文件获取前端接口函数地址并调用,使后端启动前端界面。
6.根据权利要求5所述的一种软件前端与后端连接系统,其特征在于,所述前端通信模块执行以下步骤:
在前端建立套接字,设置套接字的IP地址及端口;
建立接收函数,接收来自后端通信模块的数据包并解析得到设备状态数据,将设备状态数据进行分类,然后显示在前端的界面上的控件中;
建立发送函数,然后将含有操控命令的数据包发送至后端通信模块端口。
7.根据权利要求5所述的一种软件前端与后端连接系统,其特征在于,所述后端通信模块执行以下步骤:
建立套接字,设置与前端套接字相同的IP地址,设置后端端口;
建立接收函数,接收来自前端通信模块的含有操控命令的数据包并解析,得到操控命令;
建立发送函数,并设置定时器,定时将后端的设备状态数据进行打包,发送至前端端口。
8.根据权利要求5所述的一种软件前端与后端连接系统,其特征在于,所述加载模块执行以下步骤:
建立动态链接库文件,包括前端建立的对外接口函数、前端界面程序;
加载动态链接库文件,获取到前端的对外接口函数地址;
启动该函数,运行前端界面。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811438863.1A CN111240773A (zh) | 2018-11-28 | 2018-11-28 | 一种软件前端与后端连接方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811438863.1A CN111240773A (zh) | 2018-11-28 | 2018-11-28 | 一种软件前端与后端连接方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111240773A true CN111240773A (zh) | 2020-06-05 |
Family
ID=70874063
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811438863.1A Pending CN111240773A (zh) | 2018-11-28 | 2018-11-28 | 一种软件前端与后端连接方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111240773A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112466051A (zh) * | 2020-11-21 | 2021-03-09 | 湖南九波健康管理有限公司 | 一种基于移动支付启动石墨稀功能的理疗仪系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6609159B1 (en) * | 1998-11-30 | 2003-08-19 | Semyon Dukach | Methods, systems, and machine readable programming for interposing front end servers between servers and clients |
CN103297453A (zh) * | 2012-02-24 | 2013-09-11 | 阿里巴巴集团控股有限公司 | 实现即时通讯的方法、浏览器端和系统 |
CN103905435A (zh) * | 2014-03-14 | 2014-07-02 | 北京六间房科技有限公司 | 一种前端页面与后端服务器通信方法 |
CN104461503A (zh) * | 2014-11-06 | 2015-03-25 | 华自科技股份有限公司 | 动态组成软件界面的方法与系统 |
CN105867973A (zh) * | 2016-03-30 | 2016-08-17 | 乐视控股(北京)有限公司 | 应用程序中so文件的加载方法及系统 |
CN106648749A (zh) * | 2016-11-11 | 2017-05-10 | 广州华多网络科技有限公司 | 一种可执行程序动态调用方法及系统 |
CN106850745A (zh) * | 2016-12-23 | 2017-06-13 | 北京五八信息技术有限公司 | 一种实时同步方法和装置 |
-
2018
- 2018-11-28 CN CN201811438863.1A patent/CN111240773A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6609159B1 (en) * | 1998-11-30 | 2003-08-19 | Semyon Dukach | Methods, systems, and machine readable programming for interposing front end servers between servers and clients |
CN103297453A (zh) * | 2012-02-24 | 2013-09-11 | 阿里巴巴集团控股有限公司 | 实现即时通讯的方法、浏览器端和系统 |
CN103905435A (zh) * | 2014-03-14 | 2014-07-02 | 北京六间房科技有限公司 | 一种前端页面与后端服务器通信方法 |
CN104461503A (zh) * | 2014-11-06 | 2015-03-25 | 华自科技股份有限公司 | 动态组成软件界面的方法与系统 |
CN105867973A (zh) * | 2016-03-30 | 2016-08-17 | 乐视控股(北京)有限公司 | 应用程序中so文件的加载方法及系统 |
CN106648749A (zh) * | 2016-11-11 | 2017-05-10 | 广州华多网络科技有限公司 | 一种可执行程序动态调用方法及系统 |
CN106850745A (zh) * | 2016-12-23 | 2017-06-13 | 北京五八信息技术有限公司 | 一种实时同步方法和装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112466051A (zh) * | 2020-11-21 | 2021-03-09 | 湖南九波健康管理有限公司 | 一种基于移动支付启动石墨稀功能的理疗仪系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2017520853A (ja) | 仮想上位機器に基づく数値制御システム | |
CN104778121A (zh) | 游戏程序的测试方法、装置及系统 | |
CN111507020A (zh) | 面向多电飞机机电系统分布式仿真结果的图形化显示方法 | |
CN101782848B (zh) | 仿真软件界面集成方法 | |
CN113572815B (zh) | 一种跨异构平台的通信技术方法、系统及介质 | |
CN111522727B (zh) | 一种模拟对象测试方法、设备和系统 | |
CN111866160B (zh) | 多机控制方法、装置、设备及存储介质 | |
CN109427100A (zh) | 一种基于虚拟现实的配件组装方法和系统 | |
CN103164207A (zh) | 基于安卓系统的跨硬件平台的应用程序开发方法和系统 | |
CN103780674B (zh) | 一种基于硬件模拟的虚拟机通信方法和装置 | |
CN115333787A (zh) | 5g工控网络系统自动化安全测试方法、系统及存储介质 | |
CN204989857U (zh) | 一种基于先锋机器人的远程控制装置 | |
CN111240773A (zh) | 一种软件前端与后端连接方法 | |
CN111444095A (zh) | 移动设备的测试平台系统和测试方法 | |
CN105262880A (zh) | 一种应用于WiFi网络的手机控制演示系统 | |
CN113572822A (zh) | 一种云终端模拟控制方法、装置、存储介质及电子设备 | |
CN111078416B (zh) | 一种动态剪裁发布订阅关系的lvc网关 | |
CN110113430B (zh) | 一种基于云数据库的手机与树莓派之间的通信方法 | |
CN104506718A (zh) | 一种智能手机间远程协助的系统及其方法 | |
CN108614447B (zh) | 风电机组的联合仿真方法、装置、设备及存储介质 | |
CN112559264B (zh) | 基于uvm的验证平台实现fpga通用串口的仿真测试方法 | |
CN110502418B (zh) | 一种实现远程调试的方法 | |
CN112800604A (zh) | 应用于工业检测的仿真方法、装置、设备及存储介质 | |
CN112543190A (zh) | 一种基于脚本技术实现云边互功采集控制的系统及方法 | |
CN111698333A (zh) | 远程控制方法、服务器和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200605 |
|
RJ01 | Rejection of invention patent application after publication |