CN105549900A - 一种数据传输解析方法与装置 - Google Patents
一种数据传输解析方法与装置 Download PDFInfo
- Publication number
- CN105549900A CN105549900A CN201510887897.9A CN201510887897A CN105549900A CN 105549900 A CN105549900 A CN 105549900A CN 201510887897 A CN201510887897 A CN 201510887897A CN 105549900 A CN105549900 A CN 105549900A
- Authority
- CN
- China
- Prior art keywords
- data
- receiving end
- transmitting terminal
- memory module
- structure body
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0625—Power saving in storage systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Communication Control (AREA)
Abstract
本发明涉及一种数据传输解析方法与装置,包括如下步骤:1):定义发送端需要发送的数据量并赋值,同时定义和设置发送端的结构体对象;2):定义接收端的结构体对象;3):进行数据传输,将发送端结构体对象所发送的每个子项数据解析到接收端结构体对象的每个子项中。本方法通过结构体对象的子项自动对应达到数据自动还原的方式,能够避免人工解析时出错概率高的问题,同时占用的CPU资源较少,而且不需要对数据进行逐一的解析,有效的减少了数据处理的复杂程度,提高了数据传输时进行数据解析的效率。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种不限大小端模式的数据传输通用解析方法。
背景技术
在不同的操作平台中,数据最底层存储(二进制方式)的模式并不相同,分为大端模式和小端模式,所谓大端模式是指在一个需要存储的数据中,该数据的低位(即权值较小的后面几位)保存在内存中相应存储位置的高地址中,而数据的高位,则保存在内存中相应存储位置的低地址中。如:一个4字节32位变量的16进制值为0x12345678,在内存中以大端模式存储的方式如表1所示:
表1
所谓小端模式,与大端模式恰恰相反,在一个需要存储的数据中,该数据的低位保存在内存中相应存储位置的低地址中,而数据的高位,则存储在内存中相应存储位置的高地址中。如:一个4字节32位变量的16进制值为0x12345678,在内存中以小端模式存储的方式如表2所示:
表2
数据在跨平台通信时,在传统数据通信领域,由于两个平台中数据最底层存储的大小端模式并不匹配,从发送端到接收端解析数据就造成很***烦,需要进行数据大小端匹配调整再经过移位操作进行数据还原,如果传输数据中还存在多包头数据段定义,则需要重复进行多次大小端数据匹配和数据移位操作。比如:
一个以大端模式存储的***发送4字节数据通过TCP/IP协议到一个以小端模式存储的***中,则需要如下解析:
Unsignedchar**p;//数据读取内存指针
UnsignedintRecvData;//接收端定义变量
*p=0x4000;
RecvData=*[*p]*0x1000000+*[*p+1]*0x10000+*[*p+2]*0x100+*[*p+3];
如果一个以小端模式存储的***发送4字节数据通过TCP/IP协议到一个以小端模式存储的***中,则需要如下解析:
RecvData=*[*p|+3]*0x1000000+*[*p+2]*0x10000+*[*p+1]*0x100+*[*p];
这只是4个字节单变量数据的解析,如果发的是多字节或者不定长字节多变量多包头的二进制数据,这个解析是灾难性的。因此,亟需一种更优的技术方案来解决这一技术问题。
发明内容
本发明的目的是提供一种数据传输解析方法,用以解决现有数据传输解析方法中数据处理复杂、耗费CPU资源多、人工解析出错概率大的问题。
为实现上述目的,本发明的方案包括:
一种数据传输解析方法,包括如下步骤:
步骤1):定义发送端需要发送的数据量并赋值,同时定义和设置发送端的结构体对象;
步骤2):定义接收端的结构体对象;
步骤3):进行数据传输,将发送端结构体对象所发送的每个子项数据解析到接收端结构体对象的每个子项中。
进一步的,所述发送端的数据存储模式是小端存储模式或大端存储模式,所述接收端的数据存储模式是大端存储模式或小端存储模式。
进一步的,所述发送端与接收端的通信采用Socket函数进行通信。
一种数据传输解析装置,其特征在于,包括如下模块:
模块1:用于定义发送端需要发送的数据量并赋值,同时定义和设置发送端的结构体变量;
模块2:用于定义接收端的结构体变量;
模块3:用于进行数据传输,将发送端结构体对象所发送的每个子项数据解析到接收端结构体对象的每个子项中。
进一步的,所述发送端的数据存储模式是小端存储模式或大端存储模式,所述接收端的数据存储模式是大端存储模式或小端存储模式。
进一步的,所述发送端与接收端的通信采用Socket函数进行通信。
本方法通过发送端与接收端利用匹配数据结构体对象指针对接,不用进行大小端模式匹配和移位操作进行数据还原,直接通过结构体对象指针接收,让***内部定义的结构体子项进行自动对应达到数据自动还原的目的。这样通过结构体对象的子项自动对应达到数据自动还原的方式,能够避免人工解析时出错概率高的问题,同时占用的CPU资源较少,而且不需要对数据进行逐一的解析,有效的减少了数据处理的复杂程度,提高了数据传输时进行数据解析的效率。
具体实施方式
下面对本发明做进一步详细的说明。
本发明通过结构体对象指针读取内存子项自动对应的方式,不需要数据移位解析也不必考虑发送端是大端模式还是小端模式,唯一需要发送端发送时是以结构体对象指针进行发送的,接收端接收时是以结构体对象指针进行接收的,发送端和接收端结构体定义必须保证一致。
下面通过一个具体的例子对本发明的技术方案做详细说明。
在Linux操作***中,数据在最底层存储的模式为大端模式,而Windows操作***中在最底层中数据存储的模式则是小端模式,在二者进行数据传输通信时采用结构体对象的方式进行通信。在这里,设置Linux操作***为发送端,Windows为接收端,二者通过Tcp/Ip协议网路发送数据。在进行数据发送之前,首先对需要发送的变量进行定义,并为他们赋值,具体的,定义和赋值过程根据下述代码进行:
g_Send_zaihe_info.f_4M_count=1050;
g_Send_zaihe_info.f_end_file_id=9900;
g_Send_zaihe_info.f_end_height=16780;
g_Send_zaihe_info.f_end_jd=134.65;
g_Send_zaihe_info.f_end_wd=35.67;
g_Send_zaihe_info.f_kaiji_num=10;
g_Send_zaihe_info.f_task_id=0g;
g_Send_zaihe_info.f_start_time.nian=2015;
g_Send_zaihe_info.f_start_time.yue=4;
g_Send_zaihe_info.f_start_time.ri=10;
g_Send_zaihe_info.f_start_time.shi=15;
g_Send_zaihe_info.f_start_time.fen=55;
g_Send_zaihe_info.f_start_time.miao=50;
g_Send_zaihe_info.f_end_time.nian=2016;
g_Send_zaihe_info.f_end_time.yue=04;
g_Send_zaihe_info.f_end_time.ri=10;
g_Send_zaihe_info.f_end_time.shi=15;
g_Send_zaihe_info.f_end_time.fen=10;
g_Send_zaihe_info.f_end_time.miao=10;
conn_fd=accept(sock_fd,(structsockaddr*)&cli_addr,&cli_len);
send(conn_fd,&g_Send_zaihe_info,sizeof(g_Send_zaihe_info),0);
在对需要发送的数据进行定义和赋值完成后,则开始设置发送端的结构体对象,在这里发送端的结构体数据变量为“g_Send_zaihe_info”,其具体定义过程如下:
发送端结构体变量“g_Send_zaihe_info”定义完成后,定义和赋值的各需要发送的数据在发送端结构体变量“g_Send_zaihe_info”中的存储格式为:
09001a0400000a00df07040a000f3732
E007040a000f0a0a0000000066a60643
0000000014ae0e42000000008c410000
00000000ac260000
在接收端Windows操作***中设置接收端结构体对象“m_Recv_data”,具体设置过程如下:
设置完成以后,则开始从发送端到接收端的通信,发送端到接收端的通信采用Socket函数进行通信,从上述接收端和发送端中结构体对象的设置过程中可以看出,接收端和发送端使用了同一个结构体对象来发送和接收数据。在数据通信过程中,发送端以结构体对象的方式进行数据发送,而接收端同样采用结构体对象接收,具体的,发送端“g_Send_zaihe_info”结构体对象所发送的每个子项数据成功解析到接收端“m_Recv_data”结构体对象的每个子项中,接收端“m_Recv_data”结构体对象指针进行***内部自动匹配。
以上给出了本发明具体的实施方式,但本发明不局限于所描述的实施方式。在本发明给出的思路下,采用对本领域技术人员而言容易想到的方式对上述实施例中的技术手段进行变换、替换、修改,并且起到的作用与本发明中的相应技术手段基本相同、实现的发明目的也基本相同,这样形成的技术方案是对上述实施例进行微调形成的,这种技术方案仍落入本发明的保护范围内。
Claims (6)
1.一种数据传输解析方法,其特征在于,包括如下步骤:
步骤1):定义发送端需要发送的数据量并赋值,同时定义和设置发送端的结构体对象;
步骤2):定义接收端的结构体对象;
步骤3):进行数据传输,将发送端结构体对象所发送的每个子项数据解析到接收端结构体对象的每个子项中。
2.根据权利要求1所述的一种数据传输解析方法,其特征在于,所述发送端的数据存储模式是小端存储模式或大端存储模式,所述接收端的数据存储模式是大端存储模式或小端存储模式。
3.根据权利要求1所述的一种数据传输解析方法,其特征在于,所述发送端与接收端的通信采用Socket函数进行通信。
4.一种数据传输解析装置,其特征在于,包括如下模块:
模块1:用于定义发送端需要发送的数据量并赋值,同时定义和设置发送端的结构体变量;
模块2:用于定义接收端的结构体变量;
模块3:用于进行数据传输,将发送端结构体对象所发送的每个子项数据解析到接收端结构体对象的每个子项中。
5.根据权利要求4所述的一种数据解析装置,其特征在于,所述发送端的数据存储模式是小端存储模式或大端存储模式,所述接收端的数据存储模式是大端存储模式或小端存储模式。
6.根据权利要求4所述的一种数据解析装置,其特征在于,所述发送端与接收端的通信采用Socket函数进行通信。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510887897.9A CN105549900A (zh) | 2015-12-05 | 2015-12-05 | 一种数据传输解析方法与装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510887897.9A CN105549900A (zh) | 2015-12-05 | 2015-12-05 | 一种数据传输解析方法与装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105549900A true CN105549900A (zh) | 2016-05-04 |
Family
ID=55829103
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510887897.9A Pending CN105549900A (zh) | 2015-12-05 | 2015-12-05 | 一种数据传输解析方法与装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105549900A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110809048A (zh) * | 2019-11-08 | 2020-02-18 | 腾讯科技(深圳)有限公司 | 一种数据中转方法、装置和计算机可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101262304A (zh) * | 2008-04-24 | 2008-09-10 | 浙江大学 | 一种基于通用通讯数据格式的数据流解析方法 |
US20100121999A1 (en) * | 2008-11-12 | 2010-05-13 | Andreas Isenmann | Generating of a Device Description for a Measuring Device |
CN103034499A (zh) * | 2012-12-13 | 2013-04-10 | 中国航空无线电电子研究所 | 机载设备网络数据传输通用的数据格式转换方法及其*** |
CN103475651A (zh) * | 2013-09-03 | 2013-12-25 | 广西慧云信息技术有限公司 | 一种基于数据单元的数据传输方法 |
-
2015
- 2015-12-05 CN CN201510887897.9A patent/CN105549900A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101262304A (zh) * | 2008-04-24 | 2008-09-10 | 浙江大学 | 一种基于通用通讯数据格式的数据流解析方法 |
US20100121999A1 (en) * | 2008-11-12 | 2010-05-13 | Andreas Isenmann | Generating of a Device Description for a Measuring Device |
CN103034499A (zh) * | 2012-12-13 | 2013-04-10 | 中国航空无线电电子研究所 | 机载设备网络数据传输通用的数据格式转换方法及其*** |
CN103475651A (zh) * | 2013-09-03 | 2013-12-25 | 广西慧云信息技术有限公司 | 一种基于数据单元的数据传输方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110809048A (zh) * | 2019-11-08 | 2020-02-18 | 腾讯科技(深圳)有限公司 | 一种数据中转方法、装置和计算机可读存储介质 |
CN110809048B (zh) * | 2019-11-08 | 2020-12-15 | 腾讯科技(深圳)有限公司 | 一种数据中转方法、装置和计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103716118B (zh) | 一种自适应多速率的数据发送和接收方法及装置 | |
RU2009138237A (ru) | Способ и устройство для упорядоченного опроса в системе беспроводной связи | |
CN103973421A (zh) | 文件传送方法及装置 | |
AU2019203465B2 (en) | Link-fault tolerance in a distributed antenna system | |
CN105847101A (zh) | 一种基于车辆总线的数据传输方法 | |
US20130346656A1 (en) | Providing A Serial Protocol For A Bidirectional Serial Interconnect | |
CN103442250A (zh) | 电视机调试***和方法 | |
CN108304335A (zh) | 一种通过dma接收串口不定长报文的方法 | |
CN105549900A (zh) | 一种数据传输解析方法与装置 | |
CN103442015A (zh) | 一种基于linux虚拟网卡的在无线网络控制器上对capwap隧道数据的处理方法及*** | |
CN104796235B (zh) | 基于丢包率的卫星通信自适应拥塞控制方法 | |
TW202228428A (zh) | 具有資料重用機制的資料傳輸方法及裝置 | |
CN115119228A (zh) | 信道状态信息csi的上报方法及相关产品 | |
US20170249278A1 (en) | Stack timing adjustment for serial communications | |
CN112565105A (zh) | 一种降低时间敏感帧转发时延的方法、装置及设备 | |
US20140047124A1 (en) | Trivial file transfer protocol (tftp) data transferring prior to file transfer completion | |
EP2420936A1 (en) | Protocol conversion Communication Device | |
JP2019114947A (ja) | 通信装置、通信装置の制御方法およびプログラム | |
CN113132069A (zh) | 一种丢包重传的通信机制及基于fpga实现其的方法 | |
CN109324994B (zh) | 一种芯片互连方法及*** | |
CN111866131A (zh) | 一种基于网络协议栈的无线辅流数据处理方法及*** | |
CN113973134A (zh) | 数据传输方法、装置、电子设备及计算机存储介质 | |
CN105577694A (zh) | 一种传输数据包的方法 | |
CN111814161A (zh) | 一种数据传输方法及*** | |
CN111030904A (zh) | 一种多级通讯下多路can总线消息实时处理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160504 |