CN112671760A - 基于Socket的客户端跨平台网络通信方法及其相关设备 - Google Patents

基于Socket的客户端跨平台网络通信方法及其相关设备 Download PDF

Info

Publication number
CN112671760A
CN112671760A CN202011532191.8A CN202011532191A CN112671760A CN 112671760 A CN112671760 A CN 112671760A CN 202011532191 A CN202011532191 A CN 202011532191A CN 112671760 A CN112671760 A CN 112671760A
Authority
CN
China
Prior art keywords
input
event
output
socket
message
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
Application number
CN202011532191.8A
Other languages
English (en)
Inventor
陈晟豪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An Puhui Enterprise Management Co Ltd
Original Assignee
Ping An Puhui Enterprise Management Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ping An Puhui Enterprise Management Co Ltd filed Critical Ping An Puhui Enterprise Management Co Ltd
Priority to CN202011532191.8A priority Critical patent/CN112671760A/zh
Publication of CN112671760A publication Critical patent/CN112671760A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

本申请实施例属于基架运维领域,涉及一种基于Socket的客户端跨平台网络通信方法,包括创建套接字,将套接字接口与服务端的地址信息进行绑定,并在内存中创建缓存区;初始化消息队列,将通信数据封装成消息,并将消息添加至消息队列中;从消息队列中将消息依次取出,将消息封装成输入输出事件;将输入输出事件进行注册,并对所述输入输出事件的状态进行监听;在监听到触发输入输出事件时,将输入输出事件缓存至缓存区,并通过套接字接口发送至服务端。本申请还提供一种基于Socket的客户端跨平台网络通信相关设备。此外,本申请还涉及区块链技术,消息可存储于区块链中。本申请可以跨平台实现业务逻辑,同时保证选用系统原生进行开发,提升用户体验感。

Description

基于Socket的客户端跨平台网络通信方法及其相关设备
技术领域
本申请涉及基架运维技术领域,尤其涉及一种基于Socket的客户端跨平台网络通信方法及其相关设备。
背景技术
随着网络技术的发展以及智能终端平台的兴起,在不同平台中,使用的编程语言,支持的数据类型类别、数据类型长度、字节序、字符编码都不相同,导致数据在不同的平台中被解释为不同的含义,无法直接通信。
目前主要通过前端来开发业务逻辑,这种场景下,所有页面也需要通过HTML5标准来进行搭建,虽然保证了不同平台逻辑的一致性,对比系统原生进行开发的代码,前端在性能存在局限性,造成用户的体验感比较差。
发明内容
本申请实施例的目的在于提出一种基于Socket的客户端跨平台网络通信方法及其相关设备,以解决相关技术中由于前端性能的局限性,通过前端开发业务逻辑保证不同平台逻辑一致性会造成用户体验感差的问题。
为了解决上述技术问题,本申请实施例提供一种基于Socket的客户端跨平台网络通信方法,采用了如下所述的技术方案:
创建套接字,将套接字接口与服务端的地址信息进行绑定,并在内存中创建缓存区;
初始化消息队列,将通信数据封装成消息,并将所述消息添加至所述消息队列中;
从所述消息队列中将所述消息依次取出,将所述消息封装成输入输出事件;
将所述输入输出事件进行注册,并对所述输入输出事件的状态进行监听;及
在监听到触发所述输入输出事件时,将所述输入输出事件缓存至所述缓存区,并通过所述套接字接口发送至所述服务端。
进一步的,所述将所述消息封装成输入输出事件的步骤包括:
创建所述输入输出事件的结构体;
设置与所述消息对应的第一回调函数,并设置事件状态为初始化状态;
将所述第一回调函数的地址以及所述初始化状态写入所述结构体对应的字段。
进一步的,所述将所述输入输出事件进行注册,并对所述输入输出事件的状态进行监听的步骤包括:
将所述输入输出事件注册至事件调度中心,并将所述输入输出事件的事件状态设置为未决状态;
通过所述事件调度中心将所述输入输出事件发送给事件多路输出,由所述事件多路输出对所述输入输出事件的状态进行监听。
进一步的,所述在监听到触发所述输入输出事件时,将所述输入输出事件缓存至所述缓存区,并通过所述套接字接口发送至所述服务端的步骤包括:
确定所述输入输出事件满足触发条件,将所述输入输出事件的事件状态修改为激活状态;
通过所述事件调度中心对所述输入输出事件进行调度,触发所述输入输出事件绑定的第一回调函数;
使用所述第一回调函数将所述输入输出事件内封装的消息缓存至所述缓存区,并通过所述套接字接口发送至服务端。
进一步的,在所述将所述消息封装成输入输出事件的步骤之后还包括:
创建一个与所述输入输出事件相关联的定时事件,并将所述定时事件与第二回调函数进行绑定。
进一步的,在所述通过所述套接字接口发送至所述服务端的步骤之后还包括:
判断是否接收到所述消息对应的应答消息;
若为是,将所述消息从所述消息队列中删除;
若为否,检查所述套接字的链路连接状态。
进一步的,在所述检查所述套接字的链路连接状态的步骤之后还包括:
检查到连接状态为断开状态,重新进行所述链路的连接;
检查到连接状态为连接状态,重新执行所述将所述消息封装成输入输出事件的步骤.
为了解决上述技术问题,本申请实施例还提供一种基于Socket的客户端跨平台网络通信装置,采用了如下所述的技术方案:
创建模块,用于创建套接字,将套接字接口与服务端的地址信息进行绑定,并在内存中创建缓存区;
添加模块,用于初始化消息队列,将通信数据封装成消息,并将所述消息添加至所述消息队列中;
封装模块,用于从所述消息队列中将所述消息依次取出,将所述消息封装成输入输出事件;
监听模块,用于将所述输入输出事件进行注册,并对所述输入输出事件的状态进行监听;及
缓存发送模块,用于在监听到触发所述输入输出事件时,将所述输入输出事件缓存至所述缓存区,并通过所述套接字接口发送至所述服务端。
为了解决上述技术问题,本申请实施例还提供一种计算机设备,采用了如下所述的技术方案:
该计算机设备包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令时实现如上所述的基于Socket的客户端跨平台网络通信方法的步骤。
为了解决上述技术问题,本申请实施例还提供一种计算机可读存储介质,采用了如下所述的技术方案:
所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如上所述的基于Socket的客户端跨平台网络通信方法的步骤。
与现有技术相比,本申请实施例主要有以下有益效果:
本申请通过创建套接字,将套接字接口与服务端的地址信息进行绑定,并在内存中创建缓存区;初始化消息队列,将通信数据封装成消息,并将消息添加至消息队列中;从消息队列中将消息依次取出,将消息封装成输入输出事件;将输入输出事件进行注册,并对输入输出事件的状态进行监听;在监听到触发输入输出事件时,将输入输出事件缓存至缓存区,并通过套接字接口发送至服务端。本申请通过在客户端上创建与服务端进行通信的套接字,将通信数据封装成消息,并将消息封装成事件,封装事件适用于不同客户端平台,可以跨平台实现业务逻辑,进一步地保证选用系统原生进行开发,提升用户体验感,同时,保证业务逻辑不用在各平台上分别进行开发,减少了开发成本。
附图说明
为了更清楚地说明本申请中的方案,下面将对本申请实施例描述中所需要使用的附图作一个简单介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请可以应用于其中的示例性系统架构图;
图2根据本申请的基于Socket的客户端跨平台网络通信方法的一个实施例的流程图;
图3是图2中步骤S203的一种具体实施方式的流程图;
图4是图2中步骤S204的一种具体实施方式的流程图;
图5是图2中步骤S205的一种具体实施方式的流程图;
图6根据本申请的基于Socket的客户端跨平台网络通信方法的另一个实施例的流程图;
图7是根据本申请的基于Socket的客户端跨平台网络通信装置的一个实施例的结构示意图;
图8是根据本申请的计算机设备的一个实施例的结构示意图。
具体实施方式
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本申请的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
为了使本技术领域的人员更好地理解本申请方案,下面将结合附图,对本申请实施例中的技术方案进行清楚、完整地描述。
为了解决相关技术中由于前端性能的局限性,通过前端开发业务逻辑保证不同平台逻辑一致性会造成用户体验感差的问题,本申请提供了一种基于Socket的客户端跨平台网络通信方法,可以应用于如图1所示的系统架构100中,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、MP3播放器(Moving Picture ExpertsGroup Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving PictureExperts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103上显示的页面提供支持的后台服务器。
需要说明的是,本申请实施例所提供的基于Socket的客户端跨平台网络通信方法一般由终端设备执行,相应地,基于Socket的客户端跨平台网络通信装置一般设置于终端设备中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
本申请是将终端程序基于Reactor架构模式下进行开发,Reactor模式是以事件作为程序运转的驱动源的一种机制。在该架构下,程序结构主要包括3大部分:
1、事件
一个事件表示一组操作,程序流程中主要有两类事件:输入输出事件、定时事件。
2、事件调度中心
事件调度中心用来管理所有注册进来的事件,根据事件所处的不同状态来进行事件调度,或当事件在满足条件的情况下触发事件。
3、事件多路输出
事件多路输出用来监控事件是否满足发生条件,一旦有事件可以触发,便将控制权交付给调度中心用以触发事件。
继续参考图2,示出了根据本申请的基于Socket的客户端跨平台网络通信的方法的一个实施例的流程图,具体包括以下步骤:
步骤S201,创建套接字,将套接字接口与服务端的地址信息进行绑定,并在内存中创建缓存区。
套接字(Socket),就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。一个套接字就是网络上进程通信的一端,提供了应用层进程利用网络协议交换数据的机制。
在本实施例中,创建套接字,并初始化一个套接字的接口,将该接口与服务器的地址信息进行绑定,用以实现客户端与服务器的网络通信;地址信息包括服务器的地址和服务器的端口。需要说明的是,缓存区可以用于缓存待发送的通信数据。
步骤S202,初始化消息队列,将通信数据封装成消息,并将消息添加至消息队列中。
在本实施例中,消息队列为FIFO消息队列,FIFO消息队列是一个先进先出的消息队列,在消息队列内存有多个子消息队列,每个优先级对应一个子消息队列,每个子消息队列都可支持内存缓冲加磁盘缓冲消息,在从消息队列中取消息时,始终优先处理级别高的子消息队列。
在本实施例中,当需要向服务端发送通信数据时,根据与服务端达成的通信协议,构造通信数据的消息(即将通信数据封装成消息),将消息添加至消息队列当中。
需要强调的是,为进一步保证上述消息的私密和安全性,上述消息还可以存储于一区块链的节点中。
本申请所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
步骤S203,从消息队列中将消息依次取出,将消息封装成输入输出事件。
在本实施例中,存在很多条待发送的通信数据,将待发送的通信数据封装成消息添加至消息队列中,需要依次取出进行封装。
在本实施例的一些可选的实现方式中,将消息封装成输入输出事件的步骤具体包括如下步骤:
步骤S301,创建输入输出事件的结构体;
步骤S302,设置与消息对应的第一回调函数,并设置事件状态为初始化状态;
步骤S303,将第一回调函数的地址以及初始化状态写入所述结构体对应的字段。
在本实施例中,使用结构体对消息进行封装,封装完成的事件主要包含如下几个部分:
事件类型,包括输入输出事件、定时事件;
事件回调,事件绑定的回调函数的地址,一旦事件被触发,会根据这个绑定的地址调用对应的回调函数,在回调函数中处理事件发生后所执行的操作;
事件状态,事件在流程中根据不同的状态进行不同的行为,事件调度中心根据事件处于不同的阶段将事件修改为对应的状态,事件状态分为四类:
1)初始化状态:当事件创建后,即进入初始化状态;
2)未决状态:当事件进入调度中心时,则处于未决状态,此时需要等待监听事件的触发状况以进一步决定事件后续的处理操作;
3)激活状态:当事件满足条件可以被触发时,事件处于激活状态,则代表事件绑定的回调函数需要被触发;
4)未使用状态:当事件不需要进行任何处理的时候,处于未使用状态。
具体地,结构体的定义如下:
Figure BDA0002852369080000081
Figure BDA0002852369080000091
对结构体内各字段进行初始化,完成封装,具体如下:
nextEvent,初始化为null,直到输入输出事件被注册至事件调度中心,并被事件调度中心插入到输入输出双链表中,该字段才会被设置。
nectActiveEvent,初始化为null,直到输入输出事件满足触发条件,并被事件调度中心插入激活事件双链表中,该字段才会被设置。
minHeapIndex,该字段输出输出事件不需要使用,为null。
fd,是文件描述符,对应一个socket接口;
在前面步骤中,会首先创建初始化一个socket接口,完成后socket接口对应的描述符会作为返回值返回,该fd字段就是初始化为这个返回的文件描述符。
eventType设置为输出输出事件类型。
eventPrior会根据具体的情况设置,一般初始化为0,即默认优先级。
Callback是回调函数地址,初始化时即会设置回调函数,并在回调函数中封装了对当前消息的操作过程。
args为额外参数,根据具体情况设置,如果没有,则初始化为null。
flags设置为初始化状态。
需要说明的是,将第一回调函数的地址写入结构体的Callback字段中,完成了输入输出事件与第一回调函数的绑定。
本实施例通过将消息封装成输入输出事件,适用于不同客户端平台,可以跨平台实现业务逻辑。
步骤S204,将输入输出事件进行注册,并对输入输出事件的状态进行监听。
在本实施例中,将输入输出事件注册至内核中,由内核去监听其状态。需要说明的是,内核是计算机内核,是一个操作系统的核心,是基于硬件的第一层软件扩充,提供操作系统的最基本的功能,是操作系统工作的基础,它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。
在本实施例的一些可选的实现方式中,将输入输出事件注册至内核中,并通过内核监听输入输出事件的状态的步骤具体包括:
步骤S401,将输入输出事件注册至事件调度中心,并将输入输出事件的事件状态设置为未决状态。
事件调度中心管理着所有流程中的事件注册、删除、派发等维护所有事件的功能,并且事件调度中心通过维护多个双向链表和堆结构对所有注册进事件调度中心的事件进行管理。双向链表分别是输入输出事件链表,激活事件链表,而堆结构用来管理定时事件。事件被注册进事件调度中心后,将会利用多路复用函数对其进行监听和分发。
在本实施例中,输入输出事件即代表对一个文件描述符进行读/写数据操作,文件描述符代表一个Socket接口。每当一个输入输出事件注册进事件调度中心后,事件调度中心会将所有的输入输出事件根据其初始化设置的优先级,组成一个输入输出事件链表,此时事件状态从初始化状态修改为未决状态。
步骤S402,通过事件调度中心将输入输出事件发送给事件多路输出,由事件多路输出对输入输出事件的状态进行监听。
事件多路输出是利用系统的可支持的多路复用函数执行的。多路复用函数可以集中无限循环监听输入输出事件的状态。多路复用函数都是由系统提供的,不同的系统下有不同的函数支持。为了满足跨平台的需求,将所有多路复用函数按照一定顺序优先级进行排列,因为系统本身会提供宏开关来定义是否支持某个多路复用函数,因此根据宏开关是否存在来依次按照排序后的多路复用函数顺序来判断,并选取首个在当前系统下可以被支持的多路复用函数即为输出组织在当前操作系统环境下使用的函数。
在本实施例中,输入输出事件为对一个文件描述符进行读/写数据操作,文件描述符代表一个Socket接口,则对输入输出事件的状态进行监听,具体地,利用多路复用函数中去集中循环遍历监听,并依次判断输入输出事件对应的文件描述符的缓存是否处于可写状态,即监听Socket缓存是否可写。
通过监听输入输出事件的状态,可以保证网络通信的正常进行,即时传输通信数据。
步骤S205,在监听到触发输入输出事件时,将输入输出事件缓存至缓存区,并通过套接字接口发送至服务端。
在本实施例中,只有在监听到触发输入输出事件时,才会将通信数据发送至服务端,实现通信。
具体地,在监听到触发输入输出事件时,将输入输出事件缓存至缓存区,并通过套接字接口发送至服务端的步骤包括:
步骤S501,确定输入输出事件满足触发条件,将输入输出事件的事件状态修改为激活状态。
具体地,输入输出事件为一个文件描述符进行读数据操作,将该输入输出事件作为读事件,输入输出事件为一个文件描述符进行写数据操作,将该输入输出事件作为写事件。满足触发条件为读事件对应的文件描述符缓存不是空闲状态,写事件对应的文件描述符缓存的数据未满。
若读事件对应的文件描述符缓存中处于空闲状态,或者写事件对应的文件描述符缓存中数据已经满了,那么意味着本次输入输出事件将不能进行触发,于是直接移到下一个文件描述符继续判断;否则该输入输出事件可以被触发,此时事件的状态将被修改为激活状态。
步骤S502,通过事件调度中心对输入输出事件进行调度,触发输入输出事件绑定的第一回调函数。
在本实施例中,事件调度中心通过维护输入输出事件链表、激活事件链表,对输入输出事件进行管理,当输入输出事件满足触发条件,将输入输出事件的事件状态修改为激活状态,并通过事件调度中心将该输入输出事件从输入输出事件链表中取出,移至激活事件链表中,事件调度中心会根据激活事件链表中事件的优先级进行链接组织并依次执行激活事件链表中的输入输出事件,也即执行输入输出事件在初始化时绑定的第一回调函数,执行完成后,输入输出事件将会被从复活事件链表中删除,至此,说明一个事件的生命周期就结束了。
步骤S503,使用第一回调函数将输入输出事件内封装的消息缓存至缓存区,并通过套接字接口发送至服务端。
触发输入输出事件绑定的第一回调函数,调用输入输出事件的第一回调函数,在第一回调函数中对消息进行操作,具体地,使用第一回调函数将输入输出事件内封装的消息缓存至缓存区,随后使用第一回调函数通过套接字接口发送至服务端。
本实施例通过将输入输出事件中的消息缓存至缓存区,随后将消息通过套接字接口发送至服务端,实现客户端与服务端的通信。
本申请通过在客户端上创建与服务端进行通信的套接字,将通信数据封装成消息,并将消息封装成事件,封装事件适用于不同客户端平台,可以跨平台实现业务逻辑,进一步地保证选用系统原生进行开发,提升用户体验感,同时,保证业务逻辑不用在各平台上分别进行开发,减少了开发成本。
在本实施例的一些可选的实现方式中,在步骤203之后,上述电子设备还可以执行以下步骤:
创建一个与输入输出事件相关联的定时事件,并将定时事件与第二回调函数进行绑定。
需要说明的是,定时事件也是通过结构体进行封装,封装过程与输入输出事件相同,在此不再赘述。
在本实施例中,每次输入输出事件创建后,同时会创建一个与该输入输出事件相关联的定时事件,定时事件会也会绑定第二回调函数,将定时事件注册至事件调度中心,事件调度中心会在预设时间内调度定时事件触发。
定时事件会在初始化时设置一个时间,这个时间即为预设时间,表示在该时间后,事件需要被触发,执行绑定的回调函数。初始化后的定时事件被注册进事件调度中心后,使用小根堆对所有注册进来的定时事件进行管理。
小根堆为堆结构,是一种经过排序的完全二叉树,可以将所有被注册的定时事件按照事件触发时间排序,排序后其结构是一个完整的完全二叉树结构,时间短即先触发的事件会被放在二叉树的底部,二叉树的根所对应的事件即是所有的定时事件里最先触发的事件。
需要说明的是,除了定时事件之外的其他事件通过多路复用函数进行监听,由于多路复用函数是同步阻塞式的函数,也就是说会一直到有事件满足触发条件时,多路复用函数才会把控制权移交给主线程,否则多路复用函数会一直不断循环进行监听,如果没有事件可以触发,在不做其他处理情况下,程序会一直在多路复用函数这里阻塞住,无法执行其他操作,这时候就需要给多路复用函数设置一个最大返回时间,即便无任何被监听的事件可以触发的情况下,多路复用函数都需要在该时间内返回,移交控制权,以便程序可以继续推进执行。所以直接将小根堆中的根元素对应的定时事件的触发时间作为多路复用函数的最大返回时间,这样一旦时间满足条件,则多路复用函数都需要立马返回移交控制权给事件调度中心,事件调度中心同样会把定时事件添加至激活链表中,等待触发当前定时事件对应的回调函数。
本申请通过创建定时事件来定时监测,避免阻塞,保证程序继续推进执行。
在本实施例的一些可选的实现方式中,在步骤205之后,上述电子设备还可以执行以下步骤:
步骤S601,判断是否接收到消息对应的应答消息,若为是,执行步骤S602,否则,执行步骤S603;
步骤S602,将消息从消息队列中删除;
步骤S603,检查套接字的链路连接状态。
具体地,由事件调度中心在预设时间内调度定时事件触发,通过第二回调函数检查对应的输入输出事件内的消息是否在消息队列中,若为否,则表示消息发送成功,将消息从消息队列中删除;若为是,则说明未接收到服务端对应的应答消息,进而会进行Socket链路连接状态的检查。
在本实施例中,检查套接字的链路连接状态之后,会根据检查结果执行相应的操作,具体地,检查到连接状态为断开状态时,重新进行套接字链路的连接;检查到连接状态为连接状态,则尝试重新发送这条消息,即将该消息重新封装成一个输入输出事件执行上述流程。需要说明的是,当重试预设次数之后,例如,重试3次之后,该消息依旧在消息队列当中,那么主动断开Socket链路的连接并进行链路重连。这种方式可以保证套接字链路的连接,保证信息传输的正常进行。
在一些可选的实现方式中,链路重连会尝试进行10次,直至重连成功后便继续上述消息和事件处理流程,如果10次后依旧未重连成功,则不再进行重连尝试,直到下次有新的消息进入消息队列时才重新继续整个流程。
在本实施例的一些可选的实现方式中,创建心跳保活机制,重新进行套接字链路的连接之后,可能会出现客户端长时间无数据与服务端进行通信,如果不进行任何操作,服务端会认为Socket已经失活了,不再需要进行通信,便自动断开链路连接收回网络资源。为了避免这种情况,客户端会在Socket链路连接以后,创建一个永久的定时事件,这个定时事件的预设时间可以设置为100秒,该事件绑定的回调函数就是向服务端发送一个不含有任何数据,只包含心跳标志的消息进行链路保活,服务端就会认为依旧需要通信,从而继续保持链路的连接状态。客户端每次发送一个心跳消息,服务端便会回复一个对应的消息应答,如果发送的心跳包出现超时,即未在规定时间内收到服务端对应的消息应答,则认为Socket失效进入链路重连操作。
需要说明的是,所有的封装都是基于C++进行编写的,C++在不同的客户端操作系统上都能被良好的支持。针对的系统都需要封装一个Bridge层代码来调用这些接口逻辑:iOS系统可以直接支持Objective-C++创建mm文件来调用C++接口,而Android则通过JNI来调用C++接口,Bridge层用来为平台原生代码与C++代码之间进行桥接,使双方可以被相互调用。在实际开发过程中,为了简化开发所需要的重复编写Bridge层代码,选用了djinni库来自动编写生成这些代码,djinni可以自动通过脚本触发生成所需要的Bridge代码,减少了大量的开发人力浪费。
本申请可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机可读指令来指令相关的硬件来完成,该计算机可读指令可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性存储介质,或随机存储记忆体(Random Access Memory,RAM)等。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
进一步参考图7,作为对上述图2所示方法的实现,本申请提供了一种基于Socket的客户端跨平台网络通信装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图4所示,本实施例所述的基于Socket的客户端跨平台网络通信装置700包括:创建模块701、添加模块702、封装模块703、监听模块704以及缓存发送模块705。其中:
创建模块701用于创建套接字,将套接字接口与服务端的地址信息进行绑定,并在内存中创建缓存区;
添加模块702用于初始化消息队列,将通信数据封装成消息,并将所述消息添加至所述消息队列中;
封装模块703用于从所述消息队列中将所述消息依次取出,将所述消息封装成输入输出事件;
监听模块704用于将所述输入输出事件进行注册,并对所述输入输出事件的状态进行监听;
缓存发送模块705,用于在监听到触发所述输入输出事件时,将所述输入输出事件缓存至所述缓存区,并通过所述套接字接口发送至所述服务端。
需要强调的是,为进一步保证上述消息的私密和安全性,上述消息还可以存储于一区块链的节点中。
本申请通过在客户端上创建与服务端进行通信的套接字,将通信数据封装成消息,并将消息封装成事件,封装事件适用于不同客户端平台,可以跨平台实现业务逻辑,进一步地保证选用系统原生进行开发,提升用户体验感,同时,保证业务逻辑不用在各平台上分别进行开发,减少了开发成本。
在本实施例中,封装模块703进一步包括创建子模块、设置子模块以及写入子模块,创建子模块用于创建所述输入输出事件的结构体;设置子模块用于设置与所述消息对应的第一回调函数,并设置事件状态为初始化状态;写入子模块用于将所述第一回调函数的地址以及所述初始化状态写入所述结构体对应的字段。
过将消息封装成输入输出事件,适用于不同客户端平台,可以跨平台实现业务逻辑。
在本实施例中,监听模块704进一步包括注册子模块、传输子模块以及监听子模块,注册子模块用于将所述输入输出事件注册至事件调度中心,并将所述输入输出事件的事件状态设置为未决状态;传输子模块用于通过所述事件调度中心将所述输入输出事件发送给事件多路输出;监听子模块用于由所述事件多路输出对所述输入输出事件的状态进行监听。
通过监听输入输出事件的状态,可以保证网络通信的正常进行,即时传输通信数据。
在本实施例中,缓存发送模块705包括确定子模块、调度子模块、缓存子模块以及发送子模块,确定子模块用于确定所述输入输出事件满足触发条件,将所述输入输出事件的事件状态修改为激活状态;调度子模块用于通过所述事件调度中心对所述输入输出事件进行调度,触发所述输入输出事件绑定的第一回调函数;缓存子模块用于使用所述第一回调函数将所述输入输出事件内封装的消息缓存至所述缓存区;发送子模块用于通过所述套接字接口发送至服务端。
通过将输入输出事件中的消息缓存至缓存区,随后将消息通过套接字接口发送至服务端,实现客户端与服务端的通信。
在本实施例的一些可选的实现方式中,封装模块703还用于创建一个与所述输入输出事件相关联的定时事件,并将所述定时事件与第二回调函数进行绑定。
通过创建定时事件来定时监测,避免阻塞,保证程序继续推进执行。
在本实施例的一些可选的实现方式中,基于Socket的客户端跨平台网络通信装置700还包括判断模块,判断模块用于判断是否接收到所述消息对应的应答消息;若为是,将所述消息从所述消息队列中删除;若为否,检查所述套接字的链路连接状态。
在本实施例的一些可选的实现方式中,基于Socket的客户端跨平台网络通信装置700还包括检查模块,检查模块用于检查到连接状态为断开状态,重新进行所述链路的连接;检查到连接状态为连接状态,重新执行所述将所述消息封装成输入输出事件的步骤。
本实施例的方式可以保证套接字链路的连接,保证信息传输的正常进行。
为解决上述技术问题,本申请实施例还提供计算机设备。具体请参阅图8,图8为本实施例计算机设备基本结构框图。
所述计算机设备8包括通过系统总线相互通信连接存储器81、处理器82、网络接口83。需要指出的是,图中仅示出了具有组件81-83的计算机设备8,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable GateArray,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
所述计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
所述存储器81至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器81可以是所述计算机设备8的内部存储单元,例如该计算机设备8的硬盘或内存。在另一些实施例中,所述存储器81也可以是所述计算机设备8的外部存储设备,例如该计算机设备8上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(FlashCard)等。当然,所述存储器81还可以既包括所述计算机设备8的内部存储单元也包括其外部存储设备。本实施例中,所述存储器81通常用于存储安装于所述计算机设备8的操作系统和各类应用软件,例如基于Socket的客户端跨平台网络通信方法的计算机可读指令等。此外,所述存储器81还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器82在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器82通常用于控制所述计算机设备8的总体操作。本实施例中,所述处理器82用于运行所述存储器81中存储的计算机可读指令或者处理数据,例如运行所述基于Socket的客户端跨平台网络通信方法的计算机可读指令。
所述网络接口83可包括无线网络接口或有线网络接口,该网络接口83通常用于在所述计算机设备8与其他电子设备之间建立通信连接。
本实施例通过处理器执行存储在存储器的计算机可读指令时实现如上述实施例基于Socket的客户端跨平台网络通信的步骤,通过在客户端上创建与服务端进行通信的套接字,将通信数据封装成消息,并将消息封装成事件,封装事件适用于不同客户端平台,可以跨平台实现业务逻辑,进一步地保证选用系统原生进行开发,提升用户体验感,同时,保证业务逻辑不用在各平台上分别进行开发,减少了开发成本。
本申请还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,所述计算机可读指令可被至少一个处理器执行,以使所述至少一个处理器执行如上述的基于Socket的客户端跨平台网络通信方法的步骤,通过在客户端上创建与服务端进行通信的套接字,将通信数据封装成消息,并将消息封装成事件,封装事件适用于不同客户端平台,可以跨平台实现业务逻辑,进一步地保证选用系统原生进行开发,提升用户体验感,同时,保证业务逻辑不用在各平台上分别进行开发,减少了开发成本。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
显然,以上所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例,附图中给出了本申请的较佳实施例,但并不限制本申请的专利范围。本申请可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本申请的公开内容的理解更加透彻全面。尽管参照前述实施例对本申请进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本申请说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本申请专利保护范围之内。

Claims (10)

1.一种基于Socket的客户端跨平台网络通信方法,其特征在于,包括下述步骤:
创建套接字,将套接字接口与服务端的地址信息进行绑定,并在内存中创建缓存区;
初始化消息队列,将通信数据封装成消息,并将所述消息添加至所述消息队列中;
从所述消息队列中将所述消息依次取出,将所述消息封装成输入输出事件;
将所述输入输出事件进行注册,并对所述输入输出事件的状态进行监听;及
在监听到触发所述输入输出事件时,将所述输入输出事件缓存至所述缓存区,并通过所述套接字接口发送至所述服务端。
2.根据权利要求1所述的基于Socket的客户端跨平台网络通信方法,其特征在于,所述将所述消息封装成输入输出事件的步骤包括:
创建所述输入输出事件的结构体;
设置与所述消息对应的第一回调函数,并设置事件状态为初始化状态;
将所述第一回调函数的地址以及所述初始化状态写入所述结构体对应的字段。
3.根据权利要求2所述的基于Socket的客户端跨平台网络通信方法,其特征在于,所述将所述输入输出事件进行注册,并对所述输入输出事件的状态进行监听的步骤包括:
将所述输入输出事件注册至事件调度中心,并将所述输入输出事件的事件状态设置为未决状态;
通过所述事件调度中心将所述输入输出事件发送给事件多路输出,由所述事件多路输出对所述输入输出事件的状态进行监听。
4.根据权利要求2或3所述的基于Socket的客户端跨平台网络通信方法,其特征在于,所述在监听到触发所述输入输出事件时,将所述输入输出事件缓存至所述缓存区,并通过所述套接字接口发送至所述服务端的步骤包括:
确定所述输入输出事件满足触发条件,将所述输入输出事件的事件状态修改为激活状态;
通过所述事件调度中心对所述输入输出事件进行调度,触发所述输入输出事件绑定的第一回调函数;
使用所述第一回调函数将所述输入输出事件内封装的消息缓存至所述缓存区,并通过所述套接字接口发送至服务端。
5.根据权利要求1所述的基于Socket的客户端跨平台网络通信方法,其特征在于,在所述将所述消息封装成输入输出事件的步骤之后还包括:
创建一个与所述输入输出事件相关联的定时事件,并将所述定时事件与第二回调函数进行绑定。
6.根据权利要求5所述的基于Socket的客户端跨平台网络通信方法,其特征在于,在所述通过所述套接字接口发送至所述服务端的步骤之后还包括:
判断是否接收到所述消息对应的应答消息;
若为是,将所述消息从所述消息队列中删除;
若为否,检查所述套接字的链路连接状态。
7.根据权利要求6所述的基于Socket的客户端跨平台网络通信方法,其特征在于,在所述检查所述套接字的链路连接状态的步骤之后还包括:
检查到连接状态为断开状态,重新进行所述链路的连接;
检查到连接状态为连接状态,重新执行所述将所述消息封装成输入输出事件的步骤。
8.一种基于Socket的客户端跨平台网络通信装置,其特征在于,包括:
创建模块,用于创建套接字,将套接字接口与服务端的地址信息进行绑定,并在内存中创建缓存区;
添加模块,用于初始化消息队列,将通信数据封装成消息,并将所述消息添加至所述消息队列中;
封装模块,用于从所述消息队列中将所述消息依次取出,将所述消息封装成输入输出事件;
监听模块,用于将所述输入输出事件进行注册,并对所述输入输出事件的状态进行监听;及
缓存发送模块,用于在监听到触发所述输入输出事件时,将所述输入输出事件缓存至所述缓存区,并通过所述套接字接口发送至所述服务端。
9.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令时实现如权利要求1至7中任一项所述的基于Socket的客户端跨平台网络通信方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如权利要求1至7中任一项所述的基于Socket的客户端跨平台网络通信方法的步骤。
CN202011532191.8A 2020-12-22 2020-12-22 基于Socket的客户端跨平台网络通信方法及其相关设备 Pending CN112671760A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011532191.8A CN112671760A (zh) 2020-12-22 2020-12-22 基于Socket的客户端跨平台网络通信方法及其相关设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011532191.8A CN112671760A (zh) 2020-12-22 2020-12-22 基于Socket的客户端跨平台网络通信方法及其相关设备

Publications (1)

Publication Number Publication Date
CN112671760A true CN112671760A (zh) 2021-04-16

Family

ID=75407755

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011532191.8A Pending CN112671760A (zh) 2020-12-22 2020-12-22 基于Socket的客户端跨平台网络通信方法及其相关设备

Country Status (1)

Country Link
CN (1) CN112671760A (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112838966A (zh) * 2021-04-22 2021-05-25 北京拓课网络科技有限公司 一种udp链路监控方法、系统及电子设备
CN113472568A (zh) * 2021-06-22 2021-10-01 深圳市亿联无限科技有限公司 语音网关报障呼叫方法和系统
CN113645308A (zh) * 2021-08-18 2021-11-12 平安普惠企业管理有限公司 移动终端tcp通信、装置、设备及存储介质
CN114884907A (zh) * 2022-04-19 2022-08-09 中汽创智科技有限公司 一种基于自动驾驶的通信方法、装置、系统、设备及介质
CN114979304A (zh) * 2022-05-20 2022-08-30 国汽智控(北京)科技有限公司 一种Host与Mini通信方法、装置、设备及存储介质
CN115022751A (zh) * 2022-08-04 2022-09-06 深圳市亿联无限科技有限公司 一种模块化的olt日志管理方法及系统
CN115827283A (zh) * 2023-02-09 2023-03-21 中国证券登记结算有限责任公司 一种跨平台信息传输方法和系统
CN116820801A (zh) * 2023-06-15 2023-09-29 中科驭数(北京)科技有限公司 Io多路复用机制的优化方法、装置及设备
CN117201577A (zh) * 2023-11-07 2023-12-08 中电长城(长沙)信息技术有限公司 基于pisa的跨平台api和spi的通讯方法和系统
CN117908849A (zh) * 2024-03-15 2024-04-19 北京万维盈创科技发展有限公司 一种通用嵌入式Linux软件开发系统及开发方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160034809A1 (en) * 2014-06-10 2016-02-04 Sightline Innovation Inc. System and method for network based application development and implementation
CN106445705A (zh) * 2016-10-08 2017-02-22 武汉烽火众智数字技术有限责任公司 基于RabbitMQ和Socket.io的平台级联方法和系统
US20180167493A1 (en) * 2016-12-12 2018-06-14 Sap Se Bi-directional communication for an application object framework
CN108696537A (zh) * 2018-07-09 2018-10-23 武汉斗鱼网络科技有限公司 Ios系统中长连接网络数据分发及处理方法和系统
CN111177292A (zh) * 2019-12-23 2020-05-19 中科全维科技(苏州)有限公司 一种面向应急突发事件的WebGIS协同标绘方法和系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160034809A1 (en) * 2014-06-10 2016-02-04 Sightline Innovation Inc. System and method for network based application development and implementation
CN106445705A (zh) * 2016-10-08 2017-02-22 武汉烽火众智数字技术有限责任公司 基于RabbitMQ和Socket.io的平台级联方法和系统
US20180167493A1 (en) * 2016-12-12 2018-06-14 Sap Se Bi-directional communication for an application object framework
CN108696537A (zh) * 2018-07-09 2018-10-23 武汉斗鱼网络科技有限公司 Ios系统中长连接网络数据分发及处理方法和系统
CN111177292A (zh) * 2019-12-23 2020-05-19 中科全维科技(苏州)有限公司 一种面向应急突发事件的WebGIS协同标绘方法和系统

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112838966A (zh) * 2021-04-22 2021-05-25 北京拓课网络科技有限公司 一种udp链路监控方法、系统及电子设备
CN113472568A (zh) * 2021-06-22 2021-10-01 深圳市亿联无限科技有限公司 语音网关报障呼叫方法和系统
CN113645308B (zh) * 2021-08-18 2022-09-16 平安普惠企业管理有限公司 移动终端tcp通信、装置、设备及存储介质
CN113645308A (zh) * 2021-08-18 2021-11-12 平安普惠企业管理有限公司 移动终端tcp通信、装置、设备及存储介质
CN114884907A (zh) * 2022-04-19 2022-08-09 中汽创智科技有限公司 一种基于自动驾驶的通信方法、装置、系统、设备及介质
CN114884907B (zh) * 2022-04-19 2023-07-25 中汽创智科技有限公司 一种基于自动驾驶的通信方法、装置、系统、设备及介质
CN114979304A (zh) * 2022-05-20 2022-08-30 国汽智控(北京)科技有限公司 一种Host与Mini通信方法、装置、设备及存储介质
CN114979304B (zh) * 2022-05-20 2024-09-17 国汽智控(北京)科技有限公司 一种Host与Mini通信方法、装置、设备及存储介质
CN115022751A (zh) * 2022-08-04 2022-09-06 深圳市亿联无限科技有限公司 一种模块化的olt日志管理方法及系统
CN115022751B (zh) * 2022-08-04 2023-06-23 深圳市亿联无限科技有限公司 一种模块化的olt日志管理方法及系统
CN115827283A (zh) * 2023-02-09 2023-03-21 中国证券登记结算有限责任公司 一种跨平台信息传输方法和系统
CN116820801A (zh) * 2023-06-15 2023-09-29 中科驭数(北京)科技有限公司 Io多路复用机制的优化方法、装置及设备
CN117201577A (zh) * 2023-11-07 2023-12-08 中电长城(长沙)信息技术有限公司 基于pisa的跨平台api和spi的通讯方法和系统
CN117201577B (zh) * 2023-11-07 2024-02-13 中电长城(长沙)信息技术有限公司 基于pisa的跨平台api和spi的通讯方法和系统
CN117908849A (zh) * 2024-03-15 2024-04-19 北京万维盈创科技发展有限公司 一种通用嵌入式Linux软件开发系统及开发方法

Similar Documents

Publication Publication Date Title
CN112671760A (zh) 基于Socket的客户端跨平台网络通信方法及其相关设备
CN108572965B (zh) 一种资源加载方法及装置
US9128893B2 (en) Remote direct memory access socket aggregation
US7877091B2 (en) Method and system for executing a container managed application on a processing device
CN103019837A (zh) 资源调度方法、装置及终端设备
CN112559476B (zh) 一种用于提高目标系统性能的日志存储方法及其相关设备
CN103218266B (zh) 虚拟机与外部机器通信时使用的方法、设备及虚拟机系统
AU2019256257A1 (en) Processor core scheduling method and apparatus, terminal, and storage medium
CN110413822B (zh) 离线图像结构化分析方法、装置、系统和存储介质
CN112416458A (zh) 基于ReactNative的预加载方法、装置、计算机设备及存储介质
CN112199442A (zh) 分布式批量下载文件方法、装置、计算机设备及存储介质
CN114124929A (zh) 跨网络的数据处理方法和装置
CN108829529A (zh) 虚拟机内存共享方法、装置、计算机设备及存储介质
CN114237823A (zh) 消息队列的异常处理方法、装置、计算机设备及存储介质
WO2021098393A1 (zh) 智能化系统资源监控方法、装置、电子设备及存储介质
CN112835632B (zh) 一种端能力的调用方法、设备和计算机存储介质
WO2022156087A1 (zh) 数据血缘关系建立方法、装置、计算机设备及存储介质
CN102685303A (zh) 通信方法和装置
CN106896956A (zh) 一种“道”系统下多点触控的实现方法
CN109933444A (zh) 一种寄宿应用间的即时通讯方法
CN102117261A (zh) 一种芯片内部处理器之间的通信方法
CN114143309A (zh) 文件传输方法、装置、计算机设备及介质
CN114327404A (zh) 一种文件处理方法、装置、电子设备及计算机可读介质
CN111984202A (zh) 一种数据处理方法、装置、电子设备和存储介质
WO2023201648A1 (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
AD01 Patent right deemed abandoned
AD01 Patent right deemed abandoned

Effective date of abandoning: 20240913