CN106550026A - 一种网络通信装置及方法 - Google Patents
一种网络通信装置及方法 Download PDFInfo
- Publication number
- CN106550026A CN106550026A CN201610939968.XA CN201610939968A CN106550026A CN 106550026 A CN106550026 A CN 106550026A CN 201610939968 A CN201610939968 A CN 201610939968A CN 106550026 A CN106550026 A CN 106550026A
- Authority
- CN
- China
- Prior art keywords
- language
- data
- packaged
- target data
- sent
- 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.)
- Granted
Links
- 230000006854 communication Effects 0.000 title claims abstract description 82
- 238000004891 communication Methods 0.000 title claims abstract description 73
- 238000000034 method Methods 0.000 title claims abstract description 65
- 230000006870 function Effects 0.000 claims abstract description 31
- 238000013497 data interchange Methods 0.000 claims abstract description 28
- 238000005538 encapsulation Methods 0.000 claims abstract description 15
- 230000008569 process Effects 0.000 claims description 21
- 230000005540 biological transmission Effects 0.000 claims description 16
- 230000002159 abnormal effect Effects 0.000 claims description 15
- 238000012545 processing Methods 0.000 claims description 14
- 238000000547 structure data Methods 0.000 claims description 2
- 238000006243 chemical reaction Methods 0.000 description 7
- 238000004590 computer program Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 206010008190 Cerebrovascular accident Diseases 0.000 description 3
- 208000006011 Stroke Diseases 0.000 description 3
- 230000004913 activation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000011112 process operation Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 230000008961 swelling Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 239000011800 void material Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/565—Conversion or adaptation of application format or content
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种网络通信装置及方法,该装置包括:类封装模块,用于将待发送的目标数据封装成类,其中,所述目标数据为非C语言结构的数据;通信模块,包含转换单元、格式封装单元及发送单元;所述转换单元用于对封装成类的目标数据进行转换,获得C语言支持的目标对象;所述格式封装单元用于将所述目标对象封装成轻量级数据交换格式;所述发送单元用于通过C语言中的发送函数发送封装成所述轻量级数据交换格式的目标对象。在上述技术方案中,整个通信模块采用C语言的方式实现,大大提高了通信执行的效率,解决了现有技术中通信效率低下的技术问题,提高了网络通信效率,使得通信过程变得更加高效快速。
Description
技术领域
本发明涉及通信技术领域,特别涉及一种网络通信装置及方法。
背景技术
在移动开发中应用程序通常都会使用网络,通过网络和服务器进行信息交流。通常使用HTTP(Hyper Text Transfer Protocol,超文本传输协议)协议来与服务器进行通信,整个通信过程实现繁杂且由于通信接口的不断增加代码越来越臃肿。
现有技术中,HTTP通信过程的实现是由移动设备的操作系统实现的,如Android安卓操作系统、IOS苹果操作系统,不论Android系统采用的Java的方法,还是IOS系统通过Objective-C的方法进行网络通信,Java和Objective-C都是面向对象的编程语言,日益臃肿的代码会进一步降低代码执行效率,导致网络通信效率低下。
发明内容
本发明实施例提供一种网络通信装置及方法,用于解决现有技术中网络通信效率低下的技术问题,提高网络通信效率。
本申请实施例提供一种网络通信装置,该装置包括:
类封装模块,用于将待发送的目标数据封装成类,其中,所述目标数据为非C语言结构的数据;
通信模块,包含转换单元、格式封装单元及发送单元;所述转换单元用于对封装成类的目标数据进行转换,获得C语言支持的目标对象;所述格式封装单元用于将所述目标对象封装成轻量级数据交换格式;所述发送单元用于通过C语言中的发送函数发送封装成所述轻量级数据交换格式的目标对象。
可选的,所述目标数据为安卓系统生成的Java数据或IOS系统生成的面向对象数据。
可选的,所述发送单元,包括:
连接子单元,用于根据接收端的ip地址和端口,与所述接收端建立连接;
发送子单元,用于在所述连接子单元建立连接成功时,通过C语言中的发送函数发送封装成所述轻量级数据交换格式的目标对象。
可选的,所述网络通信装置还包括:
异常处理模块,用于接收与所述接收端建立连接的过程中产生的第一返回值,以及发送所述目标对象的过程成中产生的第二返回值;判断所述第一返回值或所述第二返回值是否为空值;若所述第一返回值或所述第二返回值为空值,生成异常信息并传递至生成所述目标数据平台。
可选的,当所述目标数据为Java数据时,所述转换单元,包括:
Java虚拟机,用于加载封装成类的目标数据,获得所述目标数据中的Java对象,其中,所述Java对象中设置有获取待发送字段的方法;从所述Java对象中调用所述获取待发送字段的方法,获得所述待发送字段;将所述待发送字段赋值给C语言支持的目标对象。
本申请实施例还提供一种网络通信方法,所述方法包括:
将待发送的目标数据封装成类,其中,所述目标数据为非C语言结构的数据;
对封装成类的目标数据进行转换,获得C语言支持的目标对象;
将所述目标对象封装成轻量级数据交换格式;
通过C语言中的发送函数发送封装成所述轻量级数据交换格式的目标对象。
可选的,所述目标数据为安卓系统生成的Java数据或IOS系统生成的面向对象数据。
可选的,所述通过C语言中的发送函数发送封装成所述轻量级数据交换格式的目标对象,包括:根据接收端的ip地址和端口,与所述接收端建立连接;若连接成功,通过C语言中的发送函数发送封装成所述轻量级数据交换格式的目标对象。
可选的,所述方法还包括:接收与所述接收端建立连接的过程中产生的第一返回值,以及发送所述目标对象的过程成中产生的第二返回值;判断所述第一返回值或所述第二返回值是否为空值;若所述第一返回值或第二返回值为空值,生成异常信息并传递至生成所述目标数据平台。
可选的,当所述目标数据为Java数据时,所述对封装成类的目标数据进行转换,获得C语言支持的目标对象,包括:通过Java虚拟机加载封装成类的目标数据,获得所述目标数据中的Java对象,其中,所述Java对象中设置有获取待发送字段的方法;通过所述Java虚拟机从所述Java对象中调用所述获取待发送字段的方法,获得所述待发送字段;将所述待发送字段赋值给C语言支持的目标对象。
本申请实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:
本申请实施例提供一种网络通信装置,包括类封装模块和通信模块;由类封装模块将待发送的非C语言结构的目标数据封装成类;再由通信模块的转换单元对封装成类的目标数据进行转换,获得C语言支持的目标对象;进一步由通信模块的格式封装单元将目标对象封装成轻量级数据交换格式;最后由通信模块的发送单元通过C语言中的发送函数发送封装成轻量级数据交换格式的目标对象,即整个通信模块采用C语言的方式实现,由于C语言面向过程其且编译器能够将代码编译成CPU能够直接处理的指令,大大提高了通信执行的效率,解决了现有技术中通信效率低下的技术问题,提高了网络通信效率,使得通信过程变得更加高效快速。
附图说明
图1为本申请实施例提供的一种网络通信装置的示意图;
图2为本申请实施例提供的一种网络通信的流程图。
具体实施方式
在本申请实施例提供的技术方案中,设置类封装模块和通信模块,通过将非C语言结构的待发送数据封装成类,以便于通信模块对其进行转换获得C语言支持的目标对象,并采用C语言的方式对目标对象进行封装发送,从而解决现有技术中通信效率低下的技术问题,提高通信效率。
为了便于对本申请技术方案的理解,下面先对本申请实施例所涉及到的技术名词进行简单介绍:
JNI:是Java Native Interface的缩写,它提供了若干的应用程序编程接口API实现了Java和其他语言的通信(主要是C&C++)。从Java1.1开始,JNI标准成为java平台的一部分,它允许Java代码和其他语言写的代码进行交互。
JVM:是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。
IP地址:IP地址是指互联网协议地址(英语:Internet Protocol Address,又译为网际协议地址),是IP Address的缩写。IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。
端口:是英文port的意译,可以认为是设备与外界通讯交流的出口。端口可分为虚拟端口和物理端口,其中虚拟端口指计算机内部或交换机路由器内的端口,不可见。
JSON:是JavaScript Object Notation的缩写,是一种轻量级的数据交换格式。它是基于ECMAScript的一个子集。JSON采用完全独立于语言的文本格式。
下面结合附图对本申请实施例技术方案的主要实现原理、具体实施方式及其对应能够达到的有益效果进行详细的阐述。
实施例一
请参考图1,本申请实施例提供一种网络通信装置,包括:类封装模块21和通信模块22。类封装模块21用于将待发送的目标数据封装成类,其中,目标数据为非C语言结构的数据;通信模块22包含:转换单元2-1、格式封装单元2-2及发送单元2-3;转换单元2-1用于对封装成类的目标数据进行转换,获得C语言支持的目标对象;格式封装单元2-2用于将目标对象封装成轻量级数据交换格式;发送单元2-3用于通过C语言中的发送函数发送封装成所述轻量级数据交换格式的目标对象。当然,通信模块22还可以包含接收单元2-4,该接收单元2-4同样采用C语言来实现,通过C语言的接收函数来接收信息并将C语言结构的信息转换为操作系统支持的相应数据。
为了使得通信过程中的异常信息能够得到实时有效的反馈和上报,本申请实施例提供的网络通信装置还设置了异常处理模块23,该异常处理模块23用于监听网络通信过程中是否产生异常,如果产生异常会生成异常信息,通知相应的数据生成平台。
下面移动端向服务器发送信息为例,对本申请实施例提供的各个模块的具体实施过程进行举例说明。
1、类封装模块21
移动端在需要进行信息发送时,将待发送的目标数据传递给类封装模块21进行封装,封装好的数据传递给通信模块22。类封装模块21将待发送的目标数据封装成类,核心目的是为了方便后面将数据传递到通信模块22进行处理,也就是将关联性很大的数据组装成一个类,然后后面使用的时候直接把这个类传递给C语言实现的通信模块22进行处理。通信模块22会将传递过来的数据重新打包后传递给服务器端。
例如为了描述人的几个属性,可以把这些属性全部封装到一个类中如下:
上述代码意思就是申明一个Person类,其中有2个属性,一个是name名字属性,一个是age年龄属性。通过这种类封装后,后面直接将Person类传递给C语言实现的通信模块22就能够获取到name和age属性了。这样就能够大大降低传递给通信模块22的参数数量。
2、通信模块22
①、转换单元2-1
本申请实施例提供的通信模块22是由C语言实现的,不同语言和C语言的通信方式会有一定的差异,为此在通信模块22中设置转换单元2-1,对封装成类的目标数据进行转换,获得C语言支持的目标对象,实现不同语言之间的数据转换(即实现类封装模块21中的数据传递到通信模块22)。
本方案中主要列举常见的2种目标数据:Android系统生成的Java数据和IOS系统生成的面向对象数据即Objective-C数据,如何传递到C语言实现的通信模块22中。
a)、Android:
在Android平台上通过JNI技术来实现Java和C语言通信。此处Java层的数据结构传递到C语言层,由于C语言的数据结构和Java的数据结构是有一定的差异性的,所以通过JNI将数据传递到C语言层时需要将Java的数据结构转换成C语言的数据结构,即对目标数据进行转换获得C语言支持的目标对象。具体转换流程如下:
1)、通过JNI调用将Java的数据对象JavaObject传递给C语言。
2)、通过JVM(Java虚拟机)中的GetObjectClass函数去加载封装成类的目标数据,这一步中将JavaObject对象传递给GetObjectClass函数,该函数的功能是找到JavaObject对象(Java对象)并将JavaObject对象加载到内存中去。
3)、从Java对象中调用获取待发送字段的方法(get方法),获得待发送字段:
通过JVM中的GetMethodID方法获取到Java对象中获取待发送字段的方法的方法id,将该id命名为methodId。其中,需要传递到C语言中的Java代码中,增加有待传递字段的get方法。
通过JVM中的CallObjectMethod方法,实现C语言调用Java语言的方法,将methodId传递进去,告诉JVM去调用methodId对应的方法,使得C语言调用相应的get方法获取到类中的待送字段。
4)、将获得的待发送字段赋值给C语言支持的目标对象,完成数据转换。
b)、IOS:
由于IOS的开发语言是Objective-C语言,该语言的编译器本身支持C语言语法和C语言编译的库文件。所以在IOS平台上Objective-C的对象能够直接在C语言中进行使用,直接从类中获得数据对象作为目标对象即可,即此时转换单元2-1的转换只需通过加载即可完成。
②、格式封装单元2-2
将目标对象封装成轻量级数据交换格式即JSON格式。JSON的封装可以通过通用的Cjson库来进行封装的,这是常用的封装方法在此不再详述。
③、发送单元2-3
发送单元2-3具体包含连接子单元和发送子单元。
连接子单元:用于根据接收端的ip地址和端口,与接收端建立连接。具体可以根据接收端的ip地址和端口调用connect函数来与其建立连接服务。
a)如果连接失败,将失败状态告知异常处理模块23,异常处理模块23会对其进行处理。
b)、如果连接成功了则执行数据发送逻辑。
发送子单元:用于在连接子单元建立连接成功时,通过C语言中的发送函数(即send函数)发送封装成轻量级数据交换格式的目标对象。
c)、如果发送失败,将失败状态告知异常处理模块23,异常处理模块23会对其进行处理。
d)、如果发送成功,只需要关闭连接,同时释放连接过程中所申请的资源。接下来接收端的C语言通信模块22中的接收单元2-4会对其进行解析操作。
④、接收单元2-4
无论是移动端还是服务器,均可以通过C语言通信模块22中的接收单元2-4接收到对端发送过来的JSON数据。在接收到JSON数据后,首先对JSON数据进行解析,同样可以采用通过通用的Cjson库来进行解析。如果在解析JSON过程中出现错误,将错误信息告知异常处理模块23,异常处理模块23会对其进行处理。反之,如果解析对象成功后将解析后的数据封装成C语言的数据结构,
解析后进行封装,将解析后的结果赋值给C语言的对象。接收单元2-4处理完后,需要将C语言对象转换成服务器上其他语言的对象并将对象传递给其他语言层。目前C语言对象转换成其他语言对象是和所转换语言对象的特性相关的,是该语言在设计的时候就已经具备的功能特性,所以此处不再对转换过程做更深入的描述,该功能主要是借助特定语言的相应的工具将C语言的数据转换成对应语言的数据类型(例如java语言中的String对应C语言中的char类型,java中的int对应c语言中的int等)。。转换完成后相应语言就能对数据进行相关处理了。
3、异常处理模块23
在通信过程中,如数据转换时、与接收端建立连接时、发送数据时等,均有可能出现异常,C语言中对于异常的捕获没有像Java中的try-catch的捕获机制,在c语言中可以通过返回值的判断来确定程序执行是否出现异常。例如:若发现connect函数返回为null,那么久表明连接失败了,这个时候说明产生了异常情况。为此,本申请实施例通过接收单元2-4,来接收通信过程中产生的返回值(包含:与接收端建立连接的过程中产生的第一返回值,以及发送目标对象的过程成中产生的第二返回值),判断返回值是否为空值(null);若返回值为空值,生成异常信息并传递至生成目标数据平台,这样生成数据的平台就能够获得相应的异常信息,并对获得的异常信息进行相应的处理操作。
在上述实施例中,由于使用了C语言去实现通信模块,C语言的编译器能够将代码编译成CPU能够直接处理的指令,所以C语言的代码执行效率会远远大于Java等其他语言的执行效率,使得本通信模块的通信过程效率比原来有大幅度提升。并且,介于C语言本身具有跨平台的特性,所以本方案中的通信模块能够在多平台上使用,达到一次开发多出平台使用的目的,大大节省各个平台的开发成本。另外,由于C语言最后编译成的二进制文件反编译会很复杂,比起其他语言来说被破解的风险大大降低,从而使得通信模块的安全性也有一定的提升。
请参考图2,基于同一发明构思,本申请实施例还对应提供一种网络通信的方法,该方法包括:
S21:将待发送的目标数据封装成类,其中,所述目标数据为非C语言结构的数据;
S22:对封装成类的目标数据进行转换,获得C语言支持的目标对象;
S23:将所述目标对象封装成轻量级数据交换格式;
S24:通过C语言中的发送函数发送封装成所述轻量级数据交换格式的目标对象。
其中,所述目标数据为安卓系统生成的Java数据或IOS系统生成的面向对象数据。
具体实施过程中,S24通过C语言中的发送函数发送封装成所述轻量级数据交换格式的目标对象,包括:根据接收端的ip地址和端口,与所述接收端建立连接;若连接成功,通过C语言中的发送函数发送封装成所述轻量级数据交换格式的目标对象。
为了使通信过程中的异常信息能够得到实时有效的反馈和上报,本申请实施例提供的网络通信方法还包括如下步骤:接收与所述接收端建立连接的过程中产生的第一返回值,以及发送所述目标对象的过程成中产生的第二返回值;判断所述第一返回值或所述第二返回值是否为空值;若所述第一返回值或所述第二返回值为空值,生成异常信息并传递至生成所述目标数据平台。
在实际应用过程中,当所述目标数据为Java数据时,S22对封装成类的目标数据进行转换,获得C语言支持的目标对象,包括:通过Java虚拟机加载封装成类的目标数据,获得所述目标数据中的Java对象,其中,所述Java对象中设置有获取待发送字段的方法;通过所述Java虚拟机从所述Java对象中调用所述获取待发送字段的方法,获得所述待发送字段;将所述待发送字段赋值给C语言支持的目标对象。
关于上述实施例中的方法,其中各个步骤的具体实施方式已经在对应装置的实施例中进行了详细描述,此处将不做详细阐述说明。
通过本申请实施例中的一个或多个技术方案,可以实现如下一个或多个技术效果:
本申请实施例提供一种网络通信装置,包括类封装模块和通信模块;由类封装模块将待发送的非C语言结构的目标数据封装成类;再由通信模块的转换单元对封装成类的目标数据进行转换,获得C语言支持的目标对象;进一步由通信模块的格式封装单元将目标对象封装成轻量级数据交换格式;最后由通信模块的发送单元通过C语言中的发送函数发送封装成轻量级数据交换格式的目标对象,即整个通信模块由C语言实现,由于C语言面向过程其且编译器能够将代码编译成CPU能够直接处理的指令,大大提高了通信执行的效率,解决了现有技术中通信效率低下的技术问题,提高了网络通信效率,使得通信过程变得更加高效快速。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种网络通信装置,其特征在于,包括:
类封装模块,用于将待发送的目标数据封装成类,其中,所述目标数据为非C语言结构的数据;
通信模块,包含转换单元、格式封装单元及发送单元;所述转换单元用于对封装成类的目标数据进行转换,获得C语言支持的目标对象;所述格式封装单元用于将所述目标对象封装成轻量级数据交换格式;所述发送单元用于通过C语言中的发送函数发送封装成所述轻量级数据交换格式的目标对象。
2.如权利要求1所述的装置,其特征在于,所述目标数据为安卓系统生成的Java数据或IOS系统生成的面向对象数据。
3.如权利要求1所述的装置,其特征在于,所述发送单元,包括:
连接子单元,用于根据接收端的ip地址和端口,与所述接收端建立连接;
发送子单元,用于在所述连接子单元建立连接成功时,通过C语言中的发送函数发送封装成所述轻量级数据交换格式的目标对象。
4.如权利要求3所述的装置,其特征在于,所述装置还包括:
异常处理模块,用于接收与所述接收端建立连接的过程中产生的第一返回值,以及发送所述目标对象的过程成中产生的第二返回值;判断所述第一返回值或所述第二返回值是否为空值;若所述第一返回值或所述第二返回值为空值,生成异常信息并传递至生成所述目标数据平台。
5.如权利要求2~4任一所述的装置,其特征在于,当所述目标数据为Java数据时,所述转换单元,包括:
Java虚拟机,用于加载封装成类的目标数据,获得所述目标数据中的Java对象,其中,所述Java对象中设置有获取待发送字段的方法;从所述Java对象中调用所述获取待发送字段的方法,获得所述待发送字段;将所述待发送字段赋值给C语言支持的目标对象。
6.一种网络通信方法,其特征在于,所述方法包括:
将待发送的目标数据封装成类,其中,所述目标数据为非C语言结构的数据;
对封装成类的目标数据进行转换,获得C语言支持的目标对象;
将所述目标对象封装成轻量级数据交换格式;
通过C语言中的发送函数发送封装成所述轻量级数据交换格式的目标对象。
7.如权利要求5所述的方法,其特征在于,所述目标数据为安卓系统生成的Java数据或IOS系统生成的面向对象数据。
8.如权利要求6所述的方法,其特征在于,所述通过C语言中的发送函数发送封装成所述轻量级数据交换格式的目标对象,包括:
根据接收端的ip地址和端口,与所述接收端建立连接;
若连接成功,通过C语言中的发送函数发送封装成所述轻量级数据交换格式的目标对象。
9.如权利要求8所述的方法,其特征在于,所述方法还包括:
接收与所述接收端建立连接的过程中产生的第一返回值,以及发送所述目标对象的过程成中产生的第二返回值;
判断所述第一返回值或所述第二返回值是否为空值;
若所述第一返回值或所述第二返回值为空值,生成异常信息并传递至生成所述目标数据平台。
10.如权利要求7~9任一所述的方法,其特征在于,当所述目标数据为Java数据时,所述对封装成类的目标数据进行转换,获得C语言支持的目标对象,包括:
通过Java虚拟机加载封装成类的目标数据,获得所述目标数据中的Java对象,其中,所述Java对象中设置有获取待发送字段的方法;
通过所述Java虚拟机从所述Java对象中调用所述获取待发送字段的方法,获得所述待发送字段;
将所述待发送字段赋值给C语言支持的目标对象。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610939968.XA CN106550026B (zh) | 2016-11-01 | 2016-11-01 | 一种网络通信装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610939968.XA CN106550026B (zh) | 2016-11-01 | 2016-11-01 | 一种网络通信装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106550026A true CN106550026A (zh) | 2017-03-29 |
CN106550026B CN106550026B (zh) | 2020-08-04 |
Family
ID=58393428
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610939968.XA Active CN106550026B (zh) | 2016-11-01 | 2016-11-01 | 一种网络通信装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106550026B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019179048A1 (zh) * | 2018-03-22 | 2019-09-26 | 北京金山安全软件有限公司 | 一种游戏作弊检测方法及装置 |
CN111522536A (zh) * | 2020-04-21 | 2020-08-11 | 艾普阳科技(深圳)有限公司 | 一种编程语言调用的方法及其相关设备 |
CN113407190A (zh) * | 2021-06-16 | 2021-09-17 | 武汉光庭信息技术股份有限公司 | Android系统与汽车ECU模块通信数据序列化和反序列化方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004023322A1 (en) * | 2002-09-09 | 2004-03-18 | Atitania Ltd. | Method and apparatus for converting data between two dissimilar systems |
CN101303656A (zh) * | 2008-06-06 | 2008-11-12 | 中国科学院计算技术研究所 | 一种Java应用程序远程直接内存访问方法 |
CN101739245A (zh) * | 2008-11-07 | 2010-06-16 | 武汉虹信通信技术有限责任公司 | Xml消息与c语言程序结构体转换的方法及装置 |
CN101996052A (zh) * | 2009-08-17 | 2011-03-30 | 英业达股份有限公司 | 磁盘阵列配置系统及方法 |
-
2016
- 2016-11-01 CN CN201610939968.XA patent/CN106550026B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004023322A1 (en) * | 2002-09-09 | 2004-03-18 | Atitania Ltd. | Method and apparatus for converting data between two dissimilar systems |
CN101303656A (zh) * | 2008-06-06 | 2008-11-12 | 中国科学院计算技术研究所 | 一种Java应用程序远程直接内存访问方法 |
CN101739245A (zh) * | 2008-11-07 | 2010-06-16 | 武汉虹信通信技术有限责任公司 | Xml消息与c语言程序结构体转换的方法及装置 |
CN101996052A (zh) * | 2009-08-17 | 2011-03-30 | 英业达股份有限公司 | 磁盘阵列配置系统及方法 |
Non-Patent Citations (2)
Title |
---|
姜延峰,全炳哲,金淳兆: "面向对象语言到过程式语言的转换", 《小型微型计算机系统》 * |
陈粤: "基于J2ME平台的手机应用程序研究与开发", 《中国优秀硕士学位论文全文数据库》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019179048A1 (zh) * | 2018-03-22 | 2019-09-26 | 北京金山安全软件有限公司 | 一种游戏作弊检测方法及装置 |
CN111522536A (zh) * | 2020-04-21 | 2020-08-11 | 艾普阳科技(深圳)有限公司 | 一种编程语言调用的方法及其相关设备 |
CN113407190A (zh) * | 2021-06-16 | 2021-09-17 | 武汉光庭信息技术股份有限公司 | Android系统与汽车ECU模块通信数据序列化和反序列化方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN106550026B (zh) | 2020-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106453766B (zh) | 基于虚拟机的数据传输方法、装置及系统 | |
US6757899B2 (en) | Dynamic CORBA gateway for CORBA and non-CORBA clients and services | |
CN102902537B (zh) | 基于FastCGI和HTML模板的嵌入式WEB MVC开发框架 | |
CN101841515B (zh) | 可变目标的协议数据单元编解码代码自动生成的实现方法 | |
CN104821954A (zh) | 一种跨平台远程过程调用方法 | |
CN106550026A (zh) | 一种网络通信装置及方法 | |
CN105337968A (zh) | 一种跨平台通讯协议代码的转换方法及其系统 | |
US20190095200A1 (en) | Compatibility method based on hybrid, adapter, operation device, system and computer-readable storage medium | |
CA2540361A1 (en) | System and method for extending capabilities and execution efficiency of script based applications | |
CN102594618A (zh) | 实现存储局域网络存储设备测试的方法及装置 | |
CN107066265A (zh) | 不同编程语言的互连方法及系统 | |
CN103746959A (zh) | OSGi环境下Java和C的通信机制的实现方法 | |
CN116028292A (zh) | 用于远程直接内存访问仿真验证的仿真验证系统及方法 | |
CN100502309C (zh) | 嵌入式Web网管系统及其交互方法 | |
CN107948009B (zh) | Plc协议测试的数据交互通道的构建方法及模型 | |
CN113485690A (zh) | 一种api接口可视化实体转换方法 | |
CN110825538A (zh) | 一种基于mq可自定义数据类型动态进行数据交互的方法 | |
CN105808549A (zh) | 基于映射文件自动组帧及分析帧的客户端方法 | |
CN110543371B (zh) | 一种远程调用接口的方法、装置、电子设备和存储介质 | |
CN113765862B (zh) | 游戏协议测试的方法、装置、设备及计算机可读存储介质 | |
CN113641577A (zh) | 一种终端产品应用程序的调试方法、装置 | |
CN111475234A (zh) | 一种字符串传递方法、装置、计算机及可读存储介质 | |
CN101252598B (zh) | 一种网络通信协议栈的开发系统和开发方法 | |
CN112448971B (zh) | 数据解析平台、数据解析方法及存储介质 | |
CN116431117B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20231031 Address after: Room 8434, Building 3, No. 3 Xijing Road, Badachu High tech Park, Shijingshan District, Beijing, 100043 Patentee after: Beijing Jinxin Ruitong Technology Co.,Ltd. Address before: 430000 East Lake Development Zone, Wuhan City, Hubei Province, No. 1 Software Park East Road 4.1 Phase B1 Building 11 Building Patentee before: WUHAN DOUYU NETWORK TECHNOLOGY Co.,Ltd. |
|
TR01 | Transfer of patent right |