CN116192985A - 一种数据传输方法、装置及系统 - Google Patents
一种数据传输方法、装置及系统 Download PDFInfo
- Publication number
- CN116192985A CN116192985A CN202310100912.5A CN202310100912A CN116192985A CN 116192985 A CN116192985 A CN 116192985A CN 202310100912 A CN202310100912 A CN 202310100912A CN 116192985 A CN116192985 A CN 116192985A
- Authority
- CN
- China
- Prior art keywords
- data
- sent
- port
- queue
- data packet
- 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
- 238000000034 method Methods 0.000 title claims abstract description 118
- 230000005540 biological transmission Effects 0.000 title claims abstract description 64
- 230000002618 waking effect Effects 0.000 claims description 15
- 238000004806 packaging method and process Methods 0.000 claims description 8
- 238000000605 extraction Methods 0.000 claims description 5
- 238000012545 processing Methods 0.000 claims description 5
- 238000004891 communication Methods 0.000 description 7
- 230000007717 exclusion Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 239000002699 waste material Substances 0.000 description 3
- 239000000284 extract Substances 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 230000005059 dormancy Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003631 expected effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000007958 sleep Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Abstract
本发明公开了一种数据传输方法、装置及系统,包括:接收待发送数据包,并创建线程和队列;根据所创建的线程,对所述待发送数据包进行解析,并将解析后的待发送数据包存放于所述队列中;其中,解析后的待发送数据包包括:数据、每条数据之间的时间间隔、源IP端口和目标IP端口;从所述队列中提取所述数据,并将所述数据按照每条数据之间的时间间隔依次发送至所述目标IP端口;待所述目标IP端口返回数据结果后,向所述源IP端口发送所述数据结果。本发明避免了现有直接对单独发送的一条数据进行转发,导致频繁地触发数据转发与接收的进程,进而导致无法循环发送多条数据的发送,减少了数据传输错误的情况发生,提高了数据传输的效率和准确性。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种数据传输方法、装置及系统。
背景技术
在网络环境下,想要在两台物联设备之间通讯,除了使用真实的物理外设之外还可以通过网络通讯,每台设备在自己的网络环境下有自己的IP,通过IP+端口确定一台设备中的指定进程,根据计算机网络,两台物联设备可以在应用层使用socket通过添加自身的IP端口和对端的IP端口以及要传递的信息,通过传输层提供的服务,传输层通过下层网络层、数据链路层以及物理层提供的服务,通过信号传递给对端的物理层,再通过链路层、网络层、传输层一层一层解析、最终到达对应的端口号,即对应的进程。
现有的物联网设备之间传输的网络只可以单独发送一条命令(或一条数据),不能循环去发送多条命令或数据的发送,并且数据与数据之间的发送时间间隔不能确定,数据大小有限制,导致物联网设备之间的通信效率低。
因此,目前亟需一种能够提高数据通信效率的方法。
发明内容
本发明提供了一种数据传输方法、装置及系统,以解决现有技术中数据通信效率低的技术问题。
为了解决上述技术问题,本发明实施例提供了一种数据传输方法,包括:
接收待发送数据包,并创建线程和队列;
根据所创建的线程,对所述待发送数据包进行解析,并将解析后的待发送数据包存放于所述队列中;其中,解析后的待发送数据包包括:数据、每条数据之间的时间间隔、源IP端口和目标IP端口;
从所述队列中提取所述数据,并将所述数据按照每条数据之间的时间间隔依次发送至所述目标IP端口;
待所述目标IP端口返回数据结果后,向所述源IP端口发送所述数据结果。
作为优选方案,所述接收待发送数据包,并创建线程和队列,具体包括:
响应于用户设定所需发送的所有数据、每条数据之间的时间间隔、源IP端口和目标IP端口并打包生成待发送数据包,读取所述待发送数据包;
当读取并接收到所述待发送数据包后,创建线程和队列;其中,所述线程包括:第一线程、第二线程和第三线程,所述队列包括第一队列、第二队列和第三队列。
作为优选方案,所述根据所创建的线程,对所述待发送数据包进行解析,并将解析后的待发送数据包存放于所述队列中,具体包括:
通过所述第一线程对所述待发送数据包进行解析;
将解析得到的源IP端口存放于所述第三队列中,以及将解析后的待发送数据包存放于所述第一队列中;
当解析后的待发送数据包完全存放于所述第一队列后,唤醒所述第二线程。
作为优选方案,所述从所述队列中提取所述数据,并将所述数据按照每条数据之间的时间间隔依次发送至所述目标IP端口,具体包括:
当所述第二线程唤醒后,通过所述第二线程检测所述第一队列中存在解析后的待发送数据包,并取出存放于所述第一队列中所有的数据,从而将所述数据按照每条数据之间的时间间隔发送至目标IP端口;所述解析后的待发送数据包包括:数据、每条数据之间的时间间隔和目标IP端口。
作为优选方案,所述待所述目标IP端口返回数据结果后,向所述源IP端口发送所述数据结果,具体包括:
当通过所述第二线程接收到目标IP端口返回的数据结果后,将所述数据结果存放于第二队列中,并唤醒所述第三线程;
当唤醒所述第三线程后,通过所述第三线程提取存放于第三队列中的源IP端口,以及存放于第二队列中的数据结果,从而向所述源IP端口发送所述数据结果。
相应地,本发明还提供一种数据传输装置,包括:创建模块、存放模块、提取模块和返回模块;
所述创建模块,用于接收待发送数据包,并创建线程和队列;
所述存放模块,用于根据所创建的线程,对所述待发送数据包进行解析,并将解析后的待发送数据包存放于所述队列中;其中,解析后的待发送数据包包括:数据、每条数据之间的时间间隔、源IP端口和目标IP端口;
所述提取模块,用于从所述队列中提取所述数据,并将所述数据按照每条数据之间的时间间隔依次发送至所述目标IP端口;
所述返回模块,用于待所述目标IP端口返回数据结果后,向所述源IP端口发送所述数据结果。
作为优选方案,所述接收待发送数据包,并创建线程和队列,具体包括:
响应于用户设定所需发送的所有数据、每条数据之间的时间间隔、源IP端口和目标IP端口并打包生成待发送数据包,读取所述待发送数据包;
当读取并接收到所述待发送数据包后,创建线程和队列;其中,所述线程包括:第一线程、第二线程和第三线程,所述队列包括第一队列、第二队列和第三队列。
作为优选方案,所述根据所创建的线程,对所述待发送数据包进行解析,并将解析后的待发送数据包存放于所述队列中,具体包括:
通过所述第一线程对所述待发送数据包进行解析;
将解析得到的源IP端口存放于所述第三队列中,以及将解析后的待发送数据包存放于所述第一队列中;
当解析后的待发送数据包完全存放于所述第一队列后,唤醒所述第二线程。
作为优选方案,所述从所述队列中提取所述数据,并将所述数据按照每条数据之间的时间间隔依次发送至所述目标IP端口,具体包括:
当所述第二线程唤醒后,通过所述第二线程检测所述第一队列中存在解析后的待发送数据包,并取出存放于所述第一队列中所有的数据,从而将所述数据按照每条数据之间的时间间隔发送至目标IP端口;所述解析后的待发送数据包包括:数据、每条数据之间的时间间隔和目标IP端口。
作为优选方案,所述待所述目标IP端口返回数据结果后,向所述源IP端口发送所述数据结果,具体包括:
当通过所述第二线程接收到目标IP端口返回的数据结果后,将所述数据结果存放于第二队列中,并唤醒所述第三线程;
当唤醒所述第三线程后,通过所述第三线程提取存放于第三队列中的源IP端口,以及存放于第二队列中的数据结果,从而向所述源IP端口发送所述数据结果。
相应地,本发明还提供一种数据传输系统,包括:web界面端、CGI进程、整理转发进程和目标端;
所述web界面端,用于响应用户所输入待发送的数据、每条数据之间的时间间隔和目标IP端口,并根据web界面端对应的源IP端口,生成待发送数据包,从而将所述待发送数据包发送至所述CGI进程中;
所述整理转发进程,用于执行如上任意一项所述的数据传输方法;
所述目标端用于对所述整理转发进程发送的数据进行处理,并生成数据结果发送回所述整理转发进程中;
所述CGI进程用于接收并向所述整理转发进程发送所述待发送数据包,以及接收所述整理转发进程发送的数据结果,并将所述数据结果转发回web界面端。
作为优选方案,所述web界面端还用于:
响应用户所输入的数据循环发送次数,并将所述数据循环发送次数与数据、每条数据之间的时间间隔、目标IP端口和源IP端口打包生成待发送数据包;
根据所述数据循环发送次数,向所述CGI进程转发,从而向所述整理转发进程依次循环发送所述待发送数据包。
作为优选方案,所述web界面端还用于依次接收从所述CGI进程,进而从所述整理转发进程发送的数据结果;其中,所述CGI进程每当接收到一个从所述整理转发进程发送的数据结果后,将该数据结果转发至所述web界面端。
作为优选方案,所述根据所述数据循环发送次数,向所述CGI进程转发,从而向所述整理转发进程依次循环发送所述待发送数据包,具体包括:
判断所述数据循环发送次数是否为1;
若是,则直接向所述CGI进程转发,进而向所述整理转发进程发送一次所述待发送数据包;
若否,则记录并将向所述CGI进程转发,进而向所述整理转发进程发送所述待发送数据包的过程作为一次实际转发,直至所述实际转发的次数与所述数据循环发送次数相同时,结束发送所述待发送数据包。
相比于现有技术,本发明实施例具有如下有益效果:
本发明的技术方案通过接收待发送数据包,从而构建线程和队列,以使得能够对待发送数据包进行解析,避免了现有直接对单独发送的一条数据进行转发,导致频繁地触发数据转发与接收的进程,进而导致无法循环发送多条数据的发送,而本发明通过创建的线程和队列,对待发送数据包进行解析,并对解析后的数据、每条数据之间的时间间隔、源IP端口和目标IP端口等存放于队列中,以使得每一次发送待发送数据包都能完整地将数据发送至目标IP端口,避免了数据转发或发送过程中造成的资源互斥的情况,进而队列中的数据发送与传输的效率得到了提高,减少了数据传输错误的情况发生,提高了数据传输准确性,并通过待目标IP端口返回数据结果后,直接返回数据结果至源IP端口,进而实现了保持高准确性和高效率地对数据进行传输的方案。
附图说明
图1:为本发明实施例所提供的一种数据传输方法的步骤流程图;
图2:为本发明实施例所提供的一种数据传输方法的实现示意图;
图3:为本发明实施例所提供的一种数据传输装置的结构示意图;
图4:为本发明实施例所提供的一种数据传输系统的时序图;
图5:为本发明实施例所提供的数据循环发送与传输的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
请参照图1,为本发明实施例提供的一种数据传输方法,包括以下步骤S101-S104:
步骤S101:接收待发送数据包,并创建线程和队列。
作为本实施例的优选方案,所述接收待发送数据包,并创建线程和队列,具体包括:
响应于用户设定所需发送的所有数据、每条数据之间的时间间隔、源IP端口和目标IP端口并打包生成待发送数据包,读取所述待发送数据包;当读取并接收到所述待发送数据包后,创建线程和队列;其中,所述线程包括:第一线程、第二线程和第三线程,所述队列包括第一队列、第二队列和第三队列。
需要说明的是,源IP端口可以为浏览器web端、终端控制设备等其对应的IP端口,目标IP端口可以为控制终端设备、处理终端设备、服务器等其对应的IP端口,进而能够实现源IP端口的设备与目标IP端口的设备进行物联,进而实现两个物联网设备之间的数据传输与通信。
在本实施例中,接收到待发送数据包后,直接创建两个socket用来中转数据,一个socket是用来接收待发送数据包,另一个socket是用来向源IP端口返回的IP端口发送数据的,从而创建出能够对待发送数据包进行处理、整理和转发的进程和队列,进而能够快速且清晰地对待发送数据包及其相应的数据等进行转发、存放与提取,优选地,请参阅图2,进程包括:第一进程、第二进程和第三进程;其中,第一进程可以用于对待发送数据包进行解析,并对解析后的待发送数据包中的数据信息进行转发;第二进程可以用于提取并将待发送数据包中的数据发送至相应的目标IP端口,来对数据进行处理,从而接收目标IP端口对数据进行处理后的数据结果,并将数据结果进行转发;第三进程可以用于将数据结果进行提取,以及对源IP端口进行提取,进而将数据结果转发至源IP端口。
进一步地,优选地,队列包括:第一队列、第二队列和第三队列;第一队列可以用于存储解析完成的数据发送队列;第二队列可以用于存储发送返回数据结果的队列;第三队列可以用于存储发送返回数据的源IP端口的地址队列。
步骤S102:根据所创建的线程,对所述待发送数据包进行解析,并将解析后的待发送数据包存放于所述队列中;其中,解析后的待发送数据包包括:数据、每条数据之间的时间间隔、源IP端口和目标IP端口。
作为本实施例的优选方案,所述根据所创建的线程,对所述待发送数据包进行解析,并将解析后的待发送数据包存放于所述队列中,具体包括:
通过所述第一线程对所述待发送数据包进行解析;将解析得到的源IP端口存放于所述第三队列中,以及将解析后的待发送数据包存放于所述第一队列中;当解析后的待发送数据包完全存放于所述第一队列后,唤醒所述第二线程。
在本实施例中,第一线程接收到数据后,首先把给第一线程的接收待发送数据包的对应源IP端口存放到第三队列中,用于返回数据结果。第一线程解析待发送数据包,解析后的数据包中包含要发送的数据和每条数据之间的间隔时间、每组数据的目标IP端口,第一线程将解析完成的数据存到第一队列中,第一线程去通知第二线程,以使得第二线程从休眠的状态中被唤醒。
进一步地,为了避免线程之间从队列中拿取存放数据产生资源互斥,同时为了节约系统资源,使用条件变量在拿取或者存放数据的时候加锁,拿取或者存放数据完成后解锁,并通知唤醒其他正在因为数据传输条件不满足而睡眠的线程。
需要说明的是,加锁是为了线程向队列中存放数据时,保证队列中数据不受到其他线程的影响,例如:第一线程向第一队列中放数据,如果在没有锁的情况下第一线程还没有向队列中放完数据,第二线程检测到队列中有数据,就会去队列中提取数据,这就造成了资源互斥。在加锁的情况下,第一线程在存数据之前加锁,第二线程在检测到有锁的情况下就不会去取数据,只有等到第一线程存完数据后解锁,第二线程检测到没有锁才能去队列中取数据。但是这种方法会造成系统资源的浪费,例如,就第二线程来说,在没有条件变量的情况下,第二线程要知道队列中是否有数据,需要第二线程一直加锁(激活)从第二队列中提取数据,然后判断数据是否为空,如果为空就需要解锁(睡眠),然后再重复上面操作,直到数据不为空为止,造成系统资源浪费。
进一步地,使用条件变量可以有效解决上述系统资源浪费的问题。条件变量的使用需要依赖线程锁,节约系统资源主要是体现在拿取数据的方面,第二线程去从第一队列中去提取数据,判断是否为空,如果为空,调用条件变量的api接口,让第二线程处于wait状态,同时解锁,在第一线程解析完数据并存到队列中后,第一线程调用接口唤醒第二线程,第二线程重新加锁拿数据然后解锁,完成操作。加条件变量避免线程在队列中没有数据的情况下去不断加锁、取数据、判断、解锁等重复操作,节约系统资源。
步骤S103:从所述队列中提取所述数据,并将所述数据按照每条数据之间的时间间隔依次发送至所述目标IP端口。
作为本实施例的优选方案,所述从所述队列中提取所述数据,并将所述数据按照每条数据之间的时间间隔依次发送至所述目标IP端口,具体包括:
当所述第二线程唤醒后,通过所述第二线程检测所述第一队列中存在解析后的待发送数据包,并取出存放于所述第一队列中所有的数据,从而将所述数据按照每条数据之间的时间间隔发送至目标IP端口;所述解析后的待发送数据包包括:数据、每条数据之间的时间间隔和目标IP端口。
在本实施例中,第二线程被唤醒后,从第一队列中提取所有数据、每条数据之间的间隔时间和目标IP端口,在休眠拿到的时间间隔后,第二线程将数据通过socket将待发送数据包中的数据发送到目标IP端口。
步骤S104:待所述目标IP端口返回数据结果后,向所述源IP端口发送所述数据结果。
作为本实施例的优选方案,所述待所述目标IP端口返回数据结果后,向所述源IP端口发送所述数据结果,具体包括:
当通过所述第二线程接收到目标IP端口返回的数据结果后,将所述数据结果存放于第二队列中,并唤醒所述第三线程;当唤醒所述第三线程后,通过所述第三线程提取存放于第三队列中的源IP端口,以及存放于第二队列中的数据结果,从而向所述源IP端口发送所述数据结果。
在本实施例中,此时第二线程在阻塞状态等待目标IP端口的返回数据结果,第二线程接收到返回的数据结果后将数据结果放到第二队列中,第二线程去唤醒第三线程,第三线程被唤醒后将第二队列中的数据结果返回到第三队列中所存储对应的源IP端口。
进一步地,类似于步骤S102,第二线程接收到目标IP端口返回的数据结果后,将数据结果存放于第二队列中后,也通过使用条件变量,从而使第三线程去从第二队列中去提取数据,判断是否为空,如果为空,调用条件变量的api接口,让第三线程处于wait状态,同时解锁,在第二线程将数据结果存到第二队列中后,第二线程调用接口唤醒第三线程,第三线程重新加锁提取数据结果,然后解锁完成操作。同理,第三线程在在唤醒后,通过重新加锁提取源IP端口,然后解锁完成源IP端口提取的操作。
实施以上实施例,具有如下效果:
本发明的技术方案通过接收待发送数据包,从而构建线程和队列,以使得能够对待发送数据包进行解析,避免了现有直接对单独发送的一条数据进行转发,导致频繁地触发数据转发与接收的进程,进而导致无法循环发送多条数据的发送,而本发明通过创建的线程和队列,对待发送数据包进行解析,并对解析后的数据、每条数据之间的时间间隔、源IP端口和目标IP端口等存放于队列中,以使得每一次发送待发送数据包都能完整地将数据发送至目标IP端口,避免了数据转发或发送过程中造成的资源互斥的情况,进而队列中的数据发送与传输的效率得到了提高,减少了数据传输错误的情况发生,提高了数据传输准确性,并通过待目标IP端口返回数据结果后,直接返回数据结果至源IP端口,进而实现了保持高准确性和高效率地对数据进行传输的方案。
实施例二
请参阅图3,其为本发明所提供一种数据传输装置,包括:创建模块201、存放模块202、提取模块203和返回模块204。
所述创建模块201,用于接收待发送数据包,并创建线程和队列;
所述存放模块202,用于根据所创建的线程,对所述待发送数据包进行解析,并将解析后的待发送数据包存放于所述队列中;其中,解析后的待发送数据包包括:数据、每条数据之间的时间间隔、源IP端口和目标IP端口;
所述提取模块203,用于从所述队列中提取所述数据,并将所述数据按照每条数据之间的时间间隔依次发送至所述目标IP端口;
所述返回模块204,用于待所述目标IP端口返回数据结果后,向所述源IP端口发送所述数据结果。
作为本实施例的优选方案,所述接收待发送数据包,并创建线程和队列,具体包括:
响应于用户设定所需发送的所有数据、每条数据之间的时间间隔、源IP端口和目标IP端口并打包生成待发送数据包,读取所述待发送数据包;当读取并接收到所述待发送数据包后,创建线程和队列;其中,所述线程包括:第一线程、第二线程和第三线程,所述队列包括第一队列、第二队列和第三队列。
作为本实施例的优选方案,所述根据所创建的线程,对所述待发送数据包进行解析,并将解析后的待发送数据包存放于所述队列中,具体包括:
通过所述第一线程对所述待发送数据包进行解析;将解析得到的源IP端口存放于所述第三队列中,以及将解析后的待发送数据包存放于所述第一队列中;当解析后的待发送数据包完全存放于所述第一队列后,唤醒所述第二线程。
作为本实施例的优选方案,所述从所述队列中提取所述数据,并将所述数据按照每条数据之间的时间间隔依次发送至所述目标IP端口,具体包括:
当所述第二线程唤醒后,通过所述第二线程检测所述第一队列中存在解析后的待发送数据包,并取出存放于所述第一队列中所有的数据,从而将所述数据按照每条数据之间的时间间隔发送至目标IP端口;所述解析后的待发送数据包包括:数据、每条数据之间的时间间隔和目标IP端口。
作为本实施例的优选方案,所述待所述目标IP端口返回数据结果后,向所述源IP端口发送所述数据结果,具体包括:
当通过所述第二线程接收到目标IP端口返回的数据结果后,将所述数据结果存放于第二队列中,并唤醒所述第三线程;当唤醒所述第三线程后,通过所述第三线程提取存放于第三队列中的源IP端口,以及存放于第二队列中的数据结果,从而向所述源IP端口发送所述数据结果。
所属领域的技术人员可以清楚的了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
实施本发明实施例,具有如下效果:
本发明的技术方案通过接收待发送数据包,从而构建线程和队列,以使得能够对待发送数据包进行解析,避免了现有直接对单独发送的一条数据进行转发,导致频繁地触发数据转发与接收的进程,进而导致无法循环发送多条数据的发送,而本发明通过创建的线程和队列,对待发送数据包进行解析,并对解析后的数据、每条数据之间的时间间隔、源IP端口和目标IP端口等存放于队列中,以使得每一次发送待发送数据包都能完整地将数据发送至目标IP端口,避免了数据转发或发送过程中造成的资源互斥的情况,进而队列中的数据发送与传输的效率得到了提高,减少了数据传输错误的情况发生,提高了数据传输准确性,并通过待目标IP端口返回数据结果后,直接返回数据结果至源IP端口,进而实现了保持高准确性和高效率地对数据进行传输的方案。
实施例三
请参阅图4,其为本发明实施例所提供一种数据传输系统,包括:web界面端01、CGI进程02、整理转发进程03和目标端04。
所述整理转发进程03,用于执行如实施例一所述的数据传输方法。
需要说明的是,为描述的方便和简洁,上述描述的整理转发进程03的具体工作过程,可以参考实施例一中的对应过程,在此不再赘述。
所述web界面端01,用于响应用户所输入待发送的数据、每条数据之间的时间间隔和目标IP端口,并根据web界面端01对应的源IP端口,生成待发送数据包,从而将所述待发送数据包发送至所述CGI进程02中。
所述目标端04用于对所述整理转发进程03发送的数据进行处理,并生成数据结果发送回所述整理转发进程03中。
需要说明的是,web界面端01可以为前端设备,即可以为用户能够进行设定与操作的前端设备,目标端04可以为控制终端设备、处理终端设备或服务器等,具体地,可以为物联网终端设备,因此通过确定web界面端01的源IP端口和物联网终端设备的目标IP端口,即可实现对物联网设备之间准确且高效的数据传输。
在本实施例中,请参阅图4,通过在浏览器web端填写数据、每条数据间隔时间、源IP端口和目标IP端口,通过部署在Linux系统设备上的SHTTPD服务器,可以实现在web界面端01发送每组数据到具体Linux的系统设备上,Linux系统设备根据web界面端01前端发送的数据,将待发送数据包按照规则解析并将每条数据转发到前端所提交的目标IP所指定的进程,进程所返回的数据同样可以通过中间的转发进程再转回到web界面端01,供用户浏览。本实施例还有预设数据和命令功能,在预设命令界面可以添加命令,提交后就会以文件形式存储到目标平台上,在填写数据界面就会有提示命令功能。
进一步地,web界面端01前端的实现,可通过bootstrap框架配合HTML、CSS、JavaScript进行搭建,JavaScript用来获取前端用户所输入的数据,并将数据打包通过SHTTPD发送给Linux系统设备的CGI进程02程序。SHTTPD是一个轻量级、可嵌入Linux系统的web服务器,通过不同的交叉编译,可以运行在不同的架构平台上,SHTTPD提高了本发明的通用性。使用类似Lighttpd、Boa等嵌入式web服务器同样可以实现,只是需要通过不同的配置、编译以及在程序中如何应用方面的差异。
所述CGI进程02用于接收并向所述整理转发进程03发送所述待发送数据包,以及接收所述整理转发进程03发送的数据结果,并将所述数据结果转发回web界面端01。
需要说明的是,CGI进程02可以让前端(web界面端01)或客户端,从web向执行在网络服务器上的程序请求数据,并对数据进行转发。
作为本实施例的优选方案,所述web界面端01还用于响应用户所输入的数据循环发送次数,并将所述数据循环发送次数与数据、每条数据之间的时间间隔、目标IP端口和源IP端口打包生成待发送数据包;所述CGI进程02还用于根据所述数据循环发送次数,向所述整理转发进程03依次循环发送所述待发送数据包。
具体地,web界面端01由两个标签页组成,第一个标签页是用来输入数据和数据间的间隔的标签页,每条数据是一个textarea控件,第一个控件下有添加按钮,添加按钮用来添加数据输入框和每条数据间隔时间以及删除该框的按钮。在数据输入的文本框下有输入IP和端口的文本输入框,同时还有每组数据之间的发送间隔和循环发送次数的输入框,下面则是提交的按钮,提交按钮的下方是用来展示从IP和端口返回的数据结果。用户点击提交按钮后,JavaStript会执行该按钮绑定的方法,将页面中数据打包,通过post请求发送给后台CGI进程02,如果负责循环的文本框内有数据的话,JavaScript内会根据输入的次数循环去向CGI进程02发送页面内数据所包装成的数据包。预设数据界面和发送数据界面相似,只是将预设的命令打包通过post请求发送给后台CGI进程02,CGI进程02将其用文件保存起来,下一次打开页面会展示到页面上。
作为本实施例的优选方案,所述CGI进程02还用于依次接收所述整理转发进程03发送的数据结果,并每当接收到一个数据结果后,将该数据结果转发至所述web界面端01。
需要说明的是,CGI进程02通过SHTTPD将返回结果分条发送给web界面端01前端,前端接收到通过JavaScript操作Dom将返回结果展示到web前端界面上。
作为本实施例的优选方案,所述根据所述数据循环发送次数,向所述整理转发进程03依次循环发送所述待发送数据包,具体包括:
判断所述数据循环发送次数是否为1;若是,则直接向所述整理转发进程03发送一次所述待发送数据包;若否,则记录并将向所述整理转发进程03发送所述待发送数据包的过程作为一次实际转发,直至所述实际转发的次数与所述数据循环发送次数相同时,结束发送所述待发送数据包。
在本实施例中,请参阅图5,通过用户在web界面端01填充待发送数据包中的数据及其信息后,判断填充循环发送次数是否大于1,并在填充循环发送次数大于1时,按照次数循环发送待发送数据包,在填充循环发送次数不大于1时,则发送一次待发送数据包,通过程序数据后,发送到目标IP端口,从而返回数据结果至web界面端01。
需要说明的是,循环发送是在web界面端01前端JavaScript中完成的,数据可以是命令,也可以是一些数据包。可以理解的是,循环发数据包可以用来测试目标IP端口的接收数据以及处理数据的能力,并且循环发命令可以测试目标IP端口解析命令的能力以及收到命令后应用层所做的操作是否符合预期效果,进而根据结果去修改程序或者找原因。
实施以上实施例,具有如下效果:
本发明实施例通过web界面端、CGI进程、整理转发进程和目标端,能够实现对物联网设备之间的数据传输,同时在需要可以发送多条数据,数据之间有可以自定义的时间间隔,并且可以循环发送,数据可以是数据包,也可以是几个字节的数据,进而根据用户所制定的协议,向用户所开发的应用循环以及在各条信息或者数据包之间增加发送时间,验证所开发应用功能是否实现,也可以用来调试所开发的功能,保证功能正常运行,提高了设备之间数据通信效率。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步的详细说明,应当理解,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围。特别指出,对于本领域技术人员来说,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种数据传输方法,其特征在于,包括:
接收待发送数据包,并创建线程和队列;
根据所创建的线程,对所述待发送数据包进行解析,并将解析后的待发送数据包存放于所述队列中;其中,解析后的待发送数据包包括:数据、每条数据之间的时间间隔、源IP端口和目标IP端口;
从所述队列中提取所述数据,并将所述数据按照每条数据之间的时间间隔依次发送至所述目标IP端口;
待所述目标IP端口返回数据结果后,向所述源IP端口发送所述数据结果。
2.如权利要求1所述的一种数据传输方法,其特征在于,所述接收待发送数据包,并创建线程和队列,具体包括:
响应于用户设定所需发送的所有数据、每条数据之间的时间间隔、源IP端口和目标IP端口并打包生成待发送数据包,读取所述待发送数据包;
当读取并接收到所述待发送数据包后,创建线程和队列;其中,所述线程包括:第一线程、第二线程和第三线程,所述队列包括第一队列、第二队列和第三队列。
3.如权利要求2所述的一种数据传输方法,其特征在于,所述根据所创建的线程,对所述待发送数据包进行解析,并将解析后的待发送数据包存放于所述队列中,具体包括:
通过所述第一线程对所述待发送数据包进行解析;
将解析得到的源IP端口存放于所述第三队列中,以及将解析后的待发送数据包存放于所述第一队列中;
当解析后的待发送数据包完全存放于所述第一队列后,唤醒所述第二线程。
4.如权利要求3所述的一种数据传输方法,其特征在于,所述从所述队列中提取所述数据,并将所述数据按照每条数据之间的时间间隔依次发送至所述目标IP端口,具体包括:
当所述第二线程唤醒后,通过所述第二线程检测所述第一队列中存在解析后的待发送数据包,并取出存放于所述第一队列中所有的数据,从而将所述数据按照每条数据之间的时间间隔发送至目标IP端口;所述解析后的待发送数据包包括:数据、每条数据之间的时间间隔和目标IP端口。
5.如权利要求4所述的一种数据传输方法,其特征在于,所述待所述目标IP端口返回数据结果后,向所述源IP端口发送所述数据结果,具体包括:
当通过所述第二线程接收到目标IP端口返回的数据结果后,将所述数据结果存放于第二队列中,并唤醒所述第三线程;
当唤醒所述第三线程后,通过所述第三线程提取存放于第三队列中的源IP端口,以及存放于第二队列中的数据结果,从而向所述源IP端口发送所述数据结果。
6.一种数据传输装置,其特征在于,包括:创建模块、存放模块、提取模块和返回模块;
所述创建模块,用于接收待发送数据包,并创建线程和队列;
所述存放模块,用于根据所创建的线程,对所述待发送数据包进行解析,并将解析后的待发送数据包存放于所述队列中;其中,解析后的待发送数据包包括:数据、每条数据之间的时间间隔、源IP端口和目标IP端口;
所述提取模块,用于从所述队列中提取所述数据,并将所述数据按照每条数据之间的时间间隔依次发送至所述目标IP端口;
所述返回模块,用于待所述目标IP端口返回数据结果后,向所述源IP端口发送所述数据结果。
7.一种数据传输系统,其特征在于,包括:web界面端、CGI进程、整理转发进程和目标端;
所述web界面端,用于响应用户所输入待发送的数据、每条数据之间的时间间隔和目标IP端口,并根据web界面端对应的源IP端口,生成待发送数据包,从而将所述待发送数据包发送至所述CGI进程中;
所述整理转发进程,用于执行如权利要求1-5任意一项所述的数据传输方法;
所述目标端用于对所述整理转发进程发送的数据进行处理,并生成数据结果发送回所述整理转发进程中;
所述CGI进程用于接收并向所述整理转发进程发送所述待发送数据包,以及接收所述整理转发进程发送的数据结果,并将所述数据结果转发回web界面端。
8.如权利要求7所述的一种数据传输系统,其特征在于,所述web界面端还用于:
响应用户所输入的数据循环发送次数,并将所述数据循环发送次数与数据、每条数据之间的时间间隔、目标IP端口和源IP端口打包生成待发送数据包;
根据所述数据循环发送次数,向所述CGI进程转发,从而向所述整理转发进程依次循环发送所述待发送数据包。
9.如权利要求8所述的一种数据传输系统,其特征在于,所述web界面端还用于依次接收从所述CGI进程,进而从所述整理转发进程发送的数据结果;其中,所述CGI进程每当接收到一个从所述整理转发进程发送的数据结果后,将该数据结果转发至所述web界面端。
10.如权利要求8或9所述的一种数据传输系统,其特征在于,所述根据所述数据循环发送次数,向所述CGI进程转发,从而向所述整理转发进程依次循环发送所述待发送数据包,具体包括:
判断所述数据循环发送次数是否为1;
若是,则直接向所述CGI进程转发,进而向所述整理转发进程发送一次所述待发送数据包;
若否,则记录并将向所述CGI进程转发,进而向所述整理转发进程发送所述待发送数据包的过程作为一次实际转发,直至所述实际转发的次数与所述数据循环发送次数相同时,结束发送所述待发送数据包。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310100912.5A CN116192985B (zh) | 2023-02-08 | 2023-02-08 | 一种数据传输方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310100912.5A CN116192985B (zh) | 2023-02-08 | 2023-02-08 | 一种数据传输方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116192985A true CN116192985A (zh) | 2023-05-30 |
CN116192985B CN116192985B (zh) | 2023-11-21 |
Family
ID=86447237
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310100912.5A Active CN116192985B (zh) | 2023-02-08 | 2023-02-08 | 一种数据传输方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116192985B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117478680A (zh) * | 2023-12-26 | 2024-01-30 | 国网四川省电力公司信息通信公司 | 基于物联管理平台的终端数据流传输远程控制方法和系统 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170168472A1 (en) * | 2015-09-29 | 2017-06-15 | Kabushiki Kaisha Toshiba | Information processing apparatus or information communication terminal, and information processing method |
CN108390927A (zh) * | 2018-02-09 | 2018-08-10 | 山东乾云启创信息科技股份有限公司 | 一种在客户机与虚拟机之间双向传输文件的方法及装置 |
CN109787722A (zh) * | 2019-01-25 | 2019-05-21 | 北京数码视讯技术有限公司 | 数据传输方法、装置和服务器 |
CN110032115A (zh) * | 2019-04-25 | 2019-07-19 | 上海法诺光电技术有限公司 | 一种利用近场连接实时交互的物联网控制系统及控制方法 |
CN110096340A (zh) * | 2018-01-29 | 2019-08-06 | 北京世纪好未来教育科技有限公司 | 定时任务处理方法及装置 |
CN110912786A (zh) * | 2019-12-27 | 2020-03-24 | 深圳市星砺达科技有限公司 | 网关压力测试方法、装置、计算机设备及存储介质 |
CN111416821A (zh) * | 2020-03-20 | 2020-07-14 | 杭州物源科技有限公司 | 物联网设备信息采集方法、系统和装置 |
WO2020259017A1 (zh) * | 2019-06-24 | 2020-12-30 | 同方威视科技江苏有限公司 | 时序数据处理方法、装置、系统、服务器及可读存储介质 |
CN112994851A (zh) * | 2021-01-26 | 2021-06-18 | 中国科学院信息工程研究所 | 一种支持差异化可协商的并行数据通信方法及装置 |
CN114595083A (zh) * | 2022-03-15 | 2022-06-07 | 中国工商银行股份有限公司 | 消息处理方法、装置、计算机设备和存储介质 |
CN115454644A (zh) * | 2022-09-26 | 2022-12-09 | 上海乐普云智科技股份有限公司 | 一种针对实时监护数据的任务线程处理方法和装置 |
-
2023
- 2023-02-08 CN CN202310100912.5A patent/CN116192985B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170168472A1 (en) * | 2015-09-29 | 2017-06-15 | Kabushiki Kaisha Toshiba | Information processing apparatus or information communication terminal, and information processing method |
CN110096340A (zh) * | 2018-01-29 | 2019-08-06 | 北京世纪好未来教育科技有限公司 | 定时任务处理方法及装置 |
CN108390927A (zh) * | 2018-02-09 | 2018-08-10 | 山东乾云启创信息科技股份有限公司 | 一种在客户机与虚拟机之间双向传输文件的方法及装置 |
CN109787722A (zh) * | 2019-01-25 | 2019-05-21 | 北京数码视讯技术有限公司 | 数据传输方法、装置和服务器 |
CN110032115A (zh) * | 2019-04-25 | 2019-07-19 | 上海法诺光电技术有限公司 | 一种利用近场连接实时交互的物联网控制系统及控制方法 |
WO2020259017A1 (zh) * | 2019-06-24 | 2020-12-30 | 同方威视科技江苏有限公司 | 时序数据处理方法、装置、系统、服务器及可读存储介质 |
CN110912786A (zh) * | 2019-12-27 | 2020-03-24 | 深圳市星砺达科技有限公司 | 网关压力测试方法、装置、计算机设备及存储介质 |
CN111416821A (zh) * | 2020-03-20 | 2020-07-14 | 杭州物源科技有限公司 | 物联网设备信息采集方法、系统和装置 |
CN112994851A (zh) * | 2021-01-26 | 2021-06-18 | 中国科学院信息工程研究所 | 一种支持差异化可协商的并行数据通信方法及装置 |
CN114595083A (zh) * | 2022-03-15 | 2022-06-07 | 中国工商银行股份有限公司 | 消息处理方法、装置、计算机设备和存储介质 |
CN115454644A (zh) * | 2022-09-26 | 2022-12-09 | 上海乐普云智科技股份有限公司 | 一种针对实时监护数据的任务线程处理方法和装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117478680A (zh) * | 2023-12-26 | 2024-01-30 | 国网四川省电力公司信息通信公司 | 基于物联管理平台的终端数据流传输远程控制方法和系统 |
CN117478680B (zh) * | 2023-12-26 | 2024-03-15 | 国网四川省电力公司信息通信公司 | 基于物联管理平台的终端数据流传输远程控制方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN116192985B (zh) | 2023-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101080055B (zh) | 一种基于手机浏览器快速浏览网页的方法、系统及设备 | |
CN111600909A (zh) | 数据处理方法、装置、协议转换设备及存储介质 | |
CN106886494A (zh) | 一种接口自动化测试方法及其系统 | |
US20150347305A1 (en) | Method and apparatus for outputting log information | |
US8112470B2 (en) | Virtual javascript object notation | |
CN107861713A (zh) | 数据调用方法、装置及计算机可读存储介质 | |
CN112187558B (zh) | 数据校验方法、装置、电子设备 | |
CN116192985B (zh) | 一种数据传输方法、装置及系统 | |
US7353225B2 (en) | Mechanism for comparing content in data structures | |
CN104967630A (zh) | 网页访问请求的处理方法及装置 | |
CN110990736A (zh) | 页面加载方法、装置、终端设备和存储介质 | |
US11294740B2 (en) | Event to serverless function workflow instance mapping mechanism | |
CN107463657B (zh) | 文件操作方法及终端 | |
CN113536185B (zh) | 应用页面的加载方法、存储介质、及其相关设备 | |
CN102819553B (zh) | 一种进行页面交互的方法及装置 | |
CN111930531A (zh) | 数据处理、数据生产、数据消费方法、装置、设备及介质 | |
CN111488731B (zh) | 文件生成方法、装置、计算机设备以及存储介质 | |
CN112527293A (zh) | 首屏页面渲染方法、装置、计算机设备及存储介质 | |
CN112306591B (zh) | 一种基于页面的远程调试方法及装置 | |
CN106686037B (zh) | 页面检测方法、装置、设备及系统 | |
CN104021196A (zh) | 一种针对System V消息队列的I/O复用方法 | |
CN104796426B (zh) | 网页后门的检测方法 | |
CN107241333A (zh) | 异常请求的识别方法、系统、网络安全设备及服务器 | |
CN106776816A (zh) | 加锁方法和装置 | |
CN102761527B (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 | ||
CB02 | Change of applicant information |
Address after: No. 56 Nanli East Road, Shiqi Town, Panyu District, Guangzhou City, Guangdong Province, 510000 Applicant after: Guangdong Baolun Electronics Co.,Ltd. Address before: No. 19, Chuangyuan Road, Zhongcun Street, Panyu District, Guangzhou City, Guangdong Province, 511495 Applicant before: GUANGZHOU ITC ELECTRONIC TECHNOLOGY Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |