CN107483384B - 一种网络数据交互方法及装置 - Google Patents
一种网络数据交互方法及装置 Download PDFInfo
- Publication number
- CN107483384B CN107483384B CN201610404248.3A CN201610404248A CN107483384B CN 107483384 B CN107483384 B CN 107483384B CN 201610404248 A CN201610404248 A CN 201610404248A CN 107483384 B CN107483384 B CN 107483384B
- Authority
- CN
- China
- Prior art keywords
- network data
- data
- signal
- shared memory
- epoll
- 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.)
- Expired - Fee Related
Links
Images
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/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- 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/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- 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]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
-
- 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]
- H04L69/163—In-band adaptation of TCP data exchange; In-band control procedures
Abstract
本发明公开了一种网络数据交互方法及装置,本发明对从网络侧获取的网络数据进行分类,并对分类后的网络数据完成相应的处理后,通过共享内存的方式与后端BT系统进行数据交互,从而解决了相关技术中大规模的动态接入的连接的管理方法效率较低的问题,提高了系统运行效率,提升了服务器的性能。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种网络数据交互方法及装置。
背景技术
随着互联网的不断普及,网络的规模越来越大、用户越来越多,网络中的服务器面临承受巨大用户的压力。如何有效的管理大规模的动态接入的连接,对于提升服务器的性能变得至关重要。
一般情况下,改善服务器的性能都是选择合适的io管理机制。现有技术中一般采用io管理机制(例如select,poll)处理大量的文件描述符,Select和poll采用对文件描述符集进行轮询的方式,因而导致效率随着描述符数的增加呈线性下降。上述io模型在监管大量连接时会有中央处理器(Central Processing Unit,简称为CPU)利用率很高的问题,从而影响服务器性能。
针对相关技术中大规模的动态接入的连接的管理方法效率较低的问题,目前还未提出有效的解决方案。
发明内容
鉴于上述的分析,本发明旨在提供一种网络数据交互方法及装置,用解决现有技术中针对大规模的动态接入的网络连接数据的管理效率较低的问题。
为解决上述问题,本发明主要是通过以下技术方案实现的:
本发明提供了一种网络数据交互方法,该方法包括:对接收到的网络数据进行分类;
对分类后的网络数据进行处理,并通过共享内存的方式与后端BT系统进行数据交互。
进一步地,对接收到的网络数据进行分类之前,还包括:
根据所述网络数据的TCP连接状态判断所述网络数据是连接请求信号或者是数据到达信号。
进一步地,该方法还包括:通过LT模式接收所述连接请求信号。
进一步地,对接收到的网络数据进行分类具体包括:
根据所述网络数据判断是否有事件发生,如果是出错事件信号,则调用出错处理函数,将所述网络数据设置为特权级,如果是可写事件信号或者是可读事件信号,则将所述网络数据设置为优先级。
进一步地,该方法还包括:对分类后的加密或者压缩处理的网络数据进行解析,或者对后端BT系统返回的交互数据进行打包或加密处理,并将处理后的数据进行转发。
本发明还提供了一种网络数据交互装置,该装置包括:
epoll数据处理单元,用于对接收到的网络数据进行分类;
会话单元,用于对分类后的网络数据进行处理,并通过共享内存的方式与后端BT系统进行数据交互。
进一步地,所述epoll数据处理单元还用于,根据所述网络数据的TCP连接状态判断所述网络数据是连接请求信号或者是数据到达信号。
进一步地,所述epoll数据处理单元还用于,通过LT模式接收所述连接请求信号。
进一步地,所述epoll数据处理单元,具体用于根据所述网络数据判断是否有事件发生,如果是出错事件信号,则调用出错处理函数,将所述网络数据设置为特权级,如果是可写事件信号或者是可读事件信号,则将所述网络数据设置为优先级。
进一步地,该装置还包括:中间单元;
所述中间单元,用于对分类后的加密或者压缩处理的网络数据进行解析,或者对后端BT系统返回的交互数据进行打包或加密处理,并将处理后的数据进行转发。
本发明有益效果如下:
本发明对从网络侧获取的网络数据进行分类,并对分类后的网络数据完成相应的处理后,通过共享内存的方式与后端BT系统进行数据交互,从而解决了相关技术中大规模的动态接入的连接的管理方法效率较低的问题,提高了系统运行效率,提升了服务器的性能。
本发明的其他特征和优点将在随后的说明书中阐述,并且部分的从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
图1为本发明实施例的一种网络数据交互装置的流程示意图;
图2是本发明实施例的epoll数据处理单元的管理流程示意图;
图3是本发明实施例的后端BT系统的处理流程示意图;
图4为本发明实施例的一种网络数据交互方法的结构示意图;
图5是本发明实施例的整体框架流程图。
具体实施方式
下面结合附图来具体描述本发明的优选实施例,其中,附图构成本申请一部分,并与本发明的实施例一起用于阐释本发明的原理。为了清楚和简化目的,当其可能使本发明的主题模糊不清时,将省略本文所描述的器件中已知功能和结构的详细具体说明。
本发明对从网络侧获取的网络数据进行分类,并对分类后的网络数据完成相应的处理后,通过共享内存的方式与后端BT系统进行数据交互,从而解决了相关技术中大规模的动态接入的连接的管理方法效率较低的问题,提高了系统运行效率,提升了服务器的性能。以下结合附图以及几个实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不限定本发明。
本发明实施例提供了一种网络数据交互方法,参见图1,该方法包括:
S102、对接收到的网络数据进行分类;
S104、对分类后的网络数据进行处理,并通过共享内存的方式与后端BT系统进行数据交互。
也就是说,本发明是对从网络侧获取的网络数据进行分类,并对分类后的网络数据完成相应的处理后,通过共享内存的方式与后端BT系统进行数据交互,从而解决了相关技术中大规模的动态接入的连接的管理方法效率较低的问题,提高了系统运行效率,提升了服务器的性能。
进一步地,本发明实施例所述对接收到的网络数据进行分类之前,还包括:根据所述网络数据的TCP连接状态判断所述网络数据是连接请求信号或者是数据到达信号。
具体实施时,本发明实施例是通过epoll数据处理单元根据所述网络数据判断是否有事件发生,如果是出错事件信号,则调用出错处理函数,将所述网络数据设置为特权级,如果是可写事件信号或者是可读事件信号,则将所述网络数据设置为优先级。
图2是本发明实施例的epoll数据处理单元的管理流程示意图,下面将结合图2对本发明所述方法进行详细说明:
步骤S202,epoll管理对象通过接口epoll_create创建管理句柄;
步骤S204,epoll管理对象接收来上层事件管理请求,向epoll内动态的添加或删除管理事件;
步骤S206,epoll管理对象递归的调用事件就绪报告接口epoll_wait;
步骤S208,判断是否有事件发生,如果有,则执行步骤S210,如果没有,则返回执行步骤S206;
步骤S210,根据事件类型进行相应的处理;
具体地,S210a,如果事件是出错信号,则调用出错处理函数,将事件设置为特权级;S210b,如果事件是可写信号,则调用读处理函数,继承注册事件的优先级;S210c,如果是可读信号,则调用写处理函数,继承注册事件的优先级;S210d,如果是其它信号,则忽略该信号。
步骤S212,设置事件优先级,根据优先级将事件放入任务队列,通告会话单元事件就绪。
也就是说,在对不同类型的描述符进行管理时,不同优先级的描述符应该分开管理,接收来自后端BT系统的消息的优先级显然要比接收来自网络的数据的优先级要高,因为需要管理的网络套接字数目会很庞大,而与后端通信的描述仅有几个,所占的比例极小,如果混在一起管理,那么很可能轮询很久都不能轮到处理与后端通信的描述符,而导致与后端通信的通道内积累大量的数据而造成溢出等严重后果。另外,如果追求连接数很高的话,也可以将接收连接也作为一个单独线程,与其他两者区别开来。
下面将主要对本发明TCP连接状态的转变过程进行介绍,epoll数据处理单元会根据套接字的状态进行相应处理。最初套接字处于STAT_NONE状态,当调用socket函数后状态变为STAT_SOCKET_CREATED,然后调用bind函数进行绑定,套接字状态变为STAT_BIND。接着调用listen函数进行监听或者调用connect函数主动发起连接,这时将该监听(或主动连接)的套接字添加到epoll中进行管理。进行监听后套接字的状态转变为STAT_LISTENING并等待外来连接,当收到连接后调用accept函数接受该连接,产生的新的连接套接字并将其状态设置为STAT_SOCKET_CONNECTED,同时将该套接字添加到epoll中。epoll会轮询这些连接的套接字当该套接字可读时,就从该连接上读取用户请求。当套接字上有数据往连接上写时,添加写任务并将套接字转为STAT_SCOKET_WRITING,这时就能将数据发送到网络中。写任务完成之后套接字回到STAT_SOCKET_CONNECTED状态。
本实施例提供了一种优选实施方式,具体为,epoll数据处理单元接收到网络侧的数据后,将该数据发送至中间单元包括:epoll数据处理单元侦听传输控制协议TCP端口,接收网络侧的客户端发送的连接请求信号;epoll数据处理单元根据该连接请求信号,与网络侧的客户端建立TCP连接;epoll数据处理单元接收网络侧的客户端发送的数据;epoll数据处理单元将该数据向上推送至中间单元,通过中间单元对分类后的加密或者压缩处理的网络数据进行解析,或者对后端BT系统返回的交互数据进行打包或加密处理,并将处理后的数据进行转发。
本发明实施例的epoll数据处理单元是通过epoll数据处理单元根据所述网络数据的TCP连接状态判断所述网络数据是连接请求信号或者是数据到达信号,并通过LT模式接收所述连接请求信号。
也就是说,本发明接收连接的描述符是以LT模式加入epoll,这样可以基本确保连接接收的速度,而不至于很多连接的遗漏。除了处理监听套接字用LT(水平触发)模式外,其他描述符都用ET(边缘触发)模式,可以保证CPU不会被来自于epoll的“可写”事件吞没。因为最频繁的事件是可读和可写事件,而当某描述符可读事件来了之后,马上将该描述符缓冲区内的数据全部读出,该描述符里的数据不会被因为使用ET而遗忘。可写事件来了之后,考察该描述符有没有需要发送的数据,有则发送,没有则忽略该事件。LT模式最大的弊端在于可写事件的频繁到达,因为大部分事件中,一个描述符可能并不需要些什么,它只是在必要的时候需要写一些东西,如果一旦可写就通知一次,那CPU将会被耗尽。
对于TCP而言,可读信号含义存在二意性。例如当接收连接的描述符反馈可读信号时,表明有连接请求到达;当TCP处于连接状态时,反馈的可读信号是数据到达信号。也就是说,接收连接的描述符反馈的可读信号有可能是连接请求信号,也有可能是数据到达信号,即存在二意性,因此,本实施例提供了一种优选实施方式,即epoll数据处理单元根据TCP连接的状态,判断接收到的信号为网络侧的客户端发送的连接请求信号,或者用于指示数据到达的信号。具体地,定义相应的TCP连接的状态,从而表明此时TCP所处的状态,进而指导系统的动作,同时也可以防止对TCP连接的误操作。在系统初始化时会创建一些epoll对象,并创建多个线程使得这些epoll对象在不同的线程中执行。当接收到连接后则将该套接字入到某个epoll对象中。这样做有利于提高CPU的使用率。
在实际操作过程中,有些数据流并不是常规的明文数据流,例如一些经过加密和压缩处理的数据流。在收到这些非常规流时,中间单元读取这些非常规数据流并将数据解析出来,然后交由会话单元处理。当后端BT系统有数据要发送时,中间单元能够对数据进行相应方式的打包、加密并将数据通过epoll数据处理单元发送到网络侧。
当中间单元处理完成之后将常规数据流交到会话单元。会话单元将每个数据流用会话这个概念来进行抽象和管理。会话单元直接负责与后端BT系统进行交互,包括数据交互和命令交互。会话单元与后端BT系统采用共享内存和命名管道相结合的方式进行进程间通信。当收到来自外网的数据时,就将该数据存入共享内存,并同时往命名管道中写入一个字节,以通知后端BT系统,后端BT系统可以通过对命名管道的事件监测,来实时获得消息到达的信号,即可取出消息。
与此类似,后端BT系统也通过相同的方式把需要发送出去的数据间接传递给会话单元。epoll数据处理单元对读命名管道进行监听,根据从读命名管道中获取到的字节数来判定读共享内存中已有的消息数,并从读共享内存中对消息进行读取。得到消息后对消息类型进行处理,如果是Session(会话)消息则对Session消息进行处理,处理后若需要回复给后端BT系统则将消息写入共享内存,如果是正常客户消息则对将该消息发送到外网。
基于前面描述的会话单元与后端BT系统的数据交互过程,本实施例提供了一种优选实施方式,即会话单元通过共享内存的方式与后端BT系统进行数据交互包括:会话单元将接收到的上述数据或者会话单元生成的命令存入第一共享内存,并向第一命名管道中发送第一提示信号;其中,上述第一提示信号用于向上述后端BT系统提示上述数据或命令到达;后端BT系统对上述第一命名管道进行监测,在监测到上述第一提示信号后,从上述第一共享内存中获取上述数据或命令。
基于前面描述的后端BT系统与epoll数据处理单元的数据交互过程,本实施例提供了一种优选实施方式,即后端BT系统从第一共享内存中获取数据或命令之后,上述方法还包括:后端BT系统将待发送的数据存入第二共享内存,并向第二命名管道中发送第二提示信号;其中,上述第二提示信号用于向上述epoll数据处理单元提示上述数据到达;epoll数据处理单元对上述第二命名管道进行监测,在监测到上述第二提示信号后,从上述第二共享内存中获取上述数据;epoll数据处理单元将上述数据发送至上述会话单元。
另外,epoll数据处理单元将数据发送至会话单元之后,上述方法还包括:会话单元将接收到的上述数据,发送至中间单元;中间单元对接收到的上述数据执行处理操作,将处理后的数据发送至epoll数据处理单元;其中,上述处理操作包括加解密操作和/或解压缩操作;epoll数据处理单元将接收的上述数据发送至上述网络侧。
另外,由于系统管理的连接数较多,所以对会话需要进行有效的管理,以达到高效的查找和高效的增减操作。系统中采用两级键值管理,即以线程ID作为键值,管理该线程分配出去的会话ID,接着以会话ID作为键值,管理会话对象。
后端BT系统运行在单独的进程中,并通过共享内存、管道等进程间通信手段与会话单元进行通信。后端BT系统中的某个线程对读命名管道进行监听,根据从读命名管道中获取到的字节数来判定读共享内存中已有的消息数,并从读共享内存中对消息进行读取。得到消息后将消息分发到不同线程进行处理,处理完成后,如果需要回复消息,则将需要回复的消息写入写共享内存,同时向写命名管道里放入一个字节的数据,等待会话单元对该条消息进行读取。
图3是根据本发明实施例的后端BT系统的处理流程示意图,如图3所示,后端BT系统在会话单元系统将数据放入共享内存后,需要将数据读出,并将读出的数据分发到各个线程的执行模块中去。利用一个Dispatcher(任务分配)模块不断的从共享内存中取出数据(单独一个线程在取),然后将数据分发到Executer(执行单元)中,而对这些数据进行处理就会有多个线程,每个线程对应一个Executer对象,Executer将消息传入状态处理机PM进行处理。
Executer线程得到了Dispatcher分发下来的消息后,判断客户端的类型,根据客户端的不同类型生成其对应的客户端的状态处理机,即PM(状态处理机)对象,每条连接生成一个PM对象,并将该条连接的session ID号与该PM对象对应起来以便于后续消息的传入。在状态机中,状态变化是指一个状态处理机在收到某个BT消息后从一种状态转化为另一种状态,通过这种状态标识来确定下一步该发什么消息给客户端,所有与客户端的消息交互过程都在该状态处理机中进行,当一个状态机收到request(请求)消息后,将把自己的状态标识为RSV_REQUESTED状态,以根据RSV_REQUESTED标识将response(响应)消息回复给客户端。
基于此,本实施例提供了一种优选实施方式,即后端BT系统从第一共享内存中获取数据或命令之后,上述方法还包括:后端BT系统将上述数据或命令分发到不同的执行进程中;上述执行进程根据与网络侧的客户端的类型相对应的状态处理机,对上述数据或命令进行处理。
执行进程根据与网络侧的客户端的类型相对应的状态处理机,对上述数据或命令进行处理,该状态处理机可以临时生成,也可以提前生成存储在对象池中以备用。即执行进程根据与网络侧的客户端的类型相对应的状态处理机,对上述数据或命令进行处理包括:初始化对象池;其中,上述对象池中存储有与客户端的不同类型相对应的状态处理机;上述执行进程在上述对象池中查找与上述客户端的类型相对应的状态处理机;上述执行进程根据上述状态处理机对上述数据或命令进行处理;或者,上述执行进程确定上述客户端的类型,生成与该类型相对应的状态处理机;上述执行进程根据上述状态处理机对上述数据或命令进行处理。
下面将对上述对象池进行详细的解释和说明。对状态处理机进行分配时,因为连接的建立和销毁会很频繁,如果每来一个handshake(握手消息,即一个新的连接),都去新生成一个PM对象,就会造成频繁的进行生成操作或者删除操作。而且在网络连接的环境中,会经常出现连接、断开、再连接、再断开的情况,这样就导致了不断的会出现生成(new)、删除(delete)的情况。这样有二个弊端:一是new和delete会耽误一个执行线程的执行时间,延长其它消息等候排队的时间;二是频繁的进行new、delete会对系统造成大量的内存碎片,影响系统的效率和稳定。所以,可以采用对象池的方法以改进效率。在程序初始化时先初始化一个对象池(具体初始化多少个对象可以进行配置),这样当一个连接过来时,就从对象池里取出一个对象,当该连接断开时,将该对象归还给对象池,这样就避免了进行new和delete,由于对网络连接来说,会频繁的连接断开、再连接、再断开,这样显然就可以重复利用对象池里的对象,提高效率。当连接数超过初始化时分配的对象时,对象池会重新生成新的对象来进行处理。
对应上述实施例介绍的数据交互方法,本实施例提供了一种网络数据交互装置,如图4所示,该装置包括epoll数据处理单元和会话单元,其中,epoll数据处理单元从网络侧接收网络数据,会话单元完成与后端BT系统的交互。下面对该装置进行具体描述。
epoll数据处理单元,用于对接收到的网络数据进行分类;
会话单元,用于对分类后的网络数据进行处理,并通过共享内存的方式与后端BT系统进行数据交互。
也就是说,本发明是通过epoll数据处理单元对从网络侧获取的网络数据进行分类,并通过会话单元对分类后的网络数据完成相应的处理后,通过共享内存的方式与后端BT系统进行数据交互,从而解决了相关技术中大规模的动态接入的连接的管理方法效率较低的问题,提高了系统运行效率,提升了服务器的性能。
具体实施时,本发明提供了以下的优选实施例,所述epoll数据处理单元还用于,根据所述网络数据的TCP连接状态判断所述网络数据是连接请求信号或者是数据到达信号,并通过LT模式接收所述连接请求信号。且所述epoll数据处理单元是根据所述网络数据判断是否有事件发生,如果是出错事件信号,则调用出错处理函数,将所述网络数据设置为特权级,如果是可写事件信号或者是可读事件信号,则将所述网络数据设置为优先级。
进一步的,本发明所述的装置还设有中间单元;所述中间单元,用于对分类后的加密或者压缩处理的网络数据进行解析,或者对后端BT系统返回的交互数据进行打包或加密处理,并将处理后的数据进行转发。
基于前面描述的会话单元与后端BT系统的数据交互过程,本实施例提供了一种优选实施方式,即会话单元包括:第一共享模块,用于将接收到的上述数据或者上述会话单元生成的命令存入第一共享内存,并向第一命名管道中发送第一提示信号;其中,上述第一提示信号用于向上述后端BT系统提示上述数据或命令到达;后端BT系统包括:第一获取模块,用于对上述第一命名管道进行监测,在监测到上述第一提示信号后,从上述第一共享内存中获取上述数据或命令。
基于前面描述的后端BT系统与epoll数据处理单元的数据交互过程,本实施例提供了一种优选实施方式,即后端BT系统还包括:第二共享模块,用于将待发送的数据存入第二共享内存,并向第二命名管道中发送第二提示信号;其中,上述第二提示信号用于向上述epoll数据处理单元提示上述数据到达;epoll数据处理单元包括:第二获取模块,用于对上述第二命名管道进行监测,在监测到上述第二提示信号后,从上述第二共享内存中获取上述数据;将上述数据发送至上述会话单元。
在此之后,上述会话单元,还用于将接收到的上述数据,发送至上述中间单元;上述中间单元,还用于对接收到的上述数据执行处理操作,将处理后的数据发送至epoll数据处理单元;其中,上述处理操作包括加解密操作和/或解压缩操作;上述epoll数据处理单元,还用于将接收的上述数据发送至上述网络侧。
图5是根据本发明实施例的整体框架流程图,如图5所示,在本实施例中,epoll数据处理单元接收到外来连接数据后,将其并交由中间单元处理(加解密、解压缩等)。经中间单元处理后到达会话单元。会话单元与后端BT系统之间采用共享内存的方式进行通信,即会话单元将收到的数据写入共享内存中,后端BT系统从该共享内存中读取数据进行处理。会话单元与后端系统之间通过两块共享内存来实现双向通信。当数据写入共享内存中时,会话单元通过向它与后端BT系统之间的管道中写入数据,以此通知后端BT系统数据到达。会话单元可以同时与多个后端系统进行通信,但要求使用各自的共享内存与管道。图5中虚线所示的数据流(来自后端BT系统)先经过epoll数据处理单元再转到会话单元进而向下。这么做是为了使所有关于描述符的操作全都集中在epoll数据处理单元,这使得维护与修改变得容易。后端BT系统处理每个具体的客户端的数据。后端读取会话单元写入共享内存的数据,并对客户端的类型进行解析,交由具体的执行线程来处理。
前面已经对实施例中涉及的epoll数据处理单元、中间单元、会话单元以及后端BT系统的数据交互过程进行了详细介绍,在此不再赘述。
从以上的描述张可以看出,本发明实施例在研究epoll的io管理机制上,采用分层的结构,分析不同的描述符的特征,从而达到了以下效果:能够对大规模的连接进行管理;采用状态处理机模型,能够对不同的客户端进行处理;采用对象池来处理BT业务连接,提高系统运行效率;可扩展性好,只需要更改后端系统就能应用于不同的业务。提高了系统运行效率,提升了服务器的性能。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。
Claims (10)
1.一种网络数据交互方法,其特征在于,包括:
对接收到的网络数据进行分类;
对分类后的网络数据进行处理,并通过共享内存的方式与后端BT系统进行数据交互;
所述通过共享内存的方式与后端BT系统进行数据交互包括:将处理后的网络数据或者生成的命令存入第一共享内存,并向所述后端BT系统发送第一提示信号,所述第一提示信号用于提示所述后端BT系统所述网络数据或所述命令的到达,所述后端BT系统将待发送的网络数据存入第二共享内存,其中,所述第一共享内存和所述第二共享内存均是所述共享内存内的内存。
2.根据权利要求1所述的网络数据交互方法,其特征在于,对接收到的网络数据进行分类之前,还包括:
根据所述网络数据的TCP连接状态判断所述网络数据是连接请求信号或者是数据到达信号。
3.根据权利要求2所述的网络数据交互方法,其特征在于,还包括:
通过LT模式接收所述连接请求信号。
4.根据权利要求1-3中任意一项所述的网络数据交互方法,其特征在于,对接收到的网络数据进行分类具体包括:
根据所述网络数据判断是否有事件发生,如果是出错事件信号,则调用出错处理函数,将所述网络数据设置为特权级,如果是可写事件信号或者是可读事件信号,则将所述网络数据设置为优先级。
5.根据权利要求1-3中任意一项所述的网络数据交互方法,其特征在于,还包括:
对分类后的加密或者压缩处理的网络数据进行解析,或者对后端BT系统返回的交互数据进行打包或加密处理,并将处理后的数据进行转发。
6.一种网络数据交互装置,其特征在于,包括:
epoll数据处理单元,用于对接收到的网络数据进行分类;
会话单元,用于对分类后的网络数据进行处理,并通过共享内存的方式与后端BT系统进行数据交互,所述通过共享内存的方式与后端BT系统进行数据交互包括:将处理后的网络数据或者生成的命令存入第一共享内存,并向所述后端BT系统发送第一提示信号,所述第一提示信号用于提示所述后端BT系统所述网络数据或所述命令的到达,所述后端BT系统将待发送的网络数据存入第二共享内存,其中,所述第一共享内存和所述第二共享内存均是所述共享内存内的内存。
7.根据权利要求6所述的网络数据交互装置,其特征在于,
所述epoll数据处理单元还用于,根据所述网络数据的TCP连接状态判断所述网络数据是连接请求信号或者是数据到达信号。
8.根据权利要求7所述的网络数据交互装置,其特征在于,
所述epoll数据处理单元还用于,通过LT模式接收所述连接请求信号。
9.根据权利要求6-8中任意一项所述的网络数据交互装置,其特征在于,
所述epoll数据处理单元,具体用于根据所述网络数据判断是否有事件发生,如果是出错事件信号,则调用出错处理函数,将所述网络数据设置为特权级,如果是可写事件信号或者是可读事件信号,则将所述网络数据设置为优先级。
10.根据权利要求6-8中任意一项所述的网络数据交互装置,其特征在于,还包括:中间单元;
所述中间单元,用于对分类后的加密或者压缩处理的网络数据进行解析,或者对后端BT系统返回的交互数据进行打包或加密处理,并将处理后的数据进行转发。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610404248.3A CN107483384B (zh) | 2016-06-08 | 2016-06-08 | 一种网络数据交互方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610404248.3A CN107483384B (zh) | 2016-06-08 | 2016-06-08 | 一种网络数据交互方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107483384A CN107483384A (zh) | 2017-12-15 |
CN107483384B true CN107483384B (zh) | 2020-07-14 |
Family
ID=60594697
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610404248.3A Expired - Fee Related CN107483384B (zh) | 2016-06-08 | 2016-06-08 | 一种网络数据交互方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107483384B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109257301A (zh) * | 2018-09-07 | 2019-01-22 | 国网江苏省电力有限公司苏州供电分公司 | 一种电力系统网络中的消息分销方法和装置 |
CN113127218B (zh) * | 2019-12-31 | 2022-09-20 | 深圳市优必选科技股份有限公司 | 机器人的实时通信方法、装置、系统、控制器和机器人 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101729415A (zh) * | 2009-11-24 | 2010-06-09 | 北京雷霆万钧网络科技有限责任公司 | 一种用户请求信息的响应方法及系统 |
CN103347037A (zh) * | 2013-05-29 | 2013-10-09 | 成都瑞科电气有限公司 | 一种基于wcf实现的通信前置机系统及通讯方法 |
CN105045727A (zh) * | 2015-08-14 | 2015-11-11 | 华为技术有限公司 | 一种访问共享内存的方法及设备 |
CN105245703A (zh) * | 2015-09-25 | 2016-01-13 | 努比亚技术有限公司 | 分类存储文件的移动终端及方法 |
-
2016
- 2016-06-08 CN CN201610404248.3A patent/CN107483384B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101729415A (zh) * | 2009-11-24 | 2010-06-09 | 北京雷霆万钧网络科技有限责任公司 | 一种用户请求信息的响应方法及系统 |
CN103347037A (zh) * | 2013-05-29 | 2013-10-09 | 成都瑞科电气有限公司 | 一种基于wcf实现的通信前置机系统及通讯方法 |
CN105045727A (zh) * | 2015-08-14 | 2015-11-11 | 华为技术有限公司 | 一种访问共享内存的方法及设备 |
CN105245703A (zh) * | 2015-09-25 | 2016-01-13 | 努比亚技术有限公司 | 分类存储文件的移动终端及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107483384A (zh) | 2017-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106161537B (zh) | 远程过程调用的处理方法、装置、系统及电子设备 | |
CN108200544B (zh) | 短信下发方法和短信平台 | |
US9537786B2 (en) | Method, device, and system for information processing based on distributed buses | |
US9524197B2 (en) | Multicasting of event notifications using extended socket for inter-process communication | |
WO2023077952A1 (zh) | 数据处理方法、系统、相关设备、存储介质及产品 | |
US9774651B2 (en) | Method and apparatus for rapid data distribution | |
US11140137B2 (en) | Method and industrial computing apparatus for performing a secure communication | |
CN108063813B (zh) | 一种集群环境下密码服务网络并行化的方法与系统 | |
CN113422842B (zh) | 一种考虑网络负载的分布式电力用电信息数据采集系统 | |
WO2018077284A1 (zh) | 通信方法和系统、电子设备和计算机集群 | |
US8606908B2 (en) | Wake-up server | |
US20140068165A1 (en) | Splitting a real-time thread between the user and kernel space | |
CN114237937A (zh) | 一种多线程的数据传输方法和装置 | |
CN102904961A (zh) | 一种云计算资源调度方法及系统 | |
CN112256389A (zh) | 云桌面终端usb重定向方法 | |
CN107483384B (zh) | 一种网络数据交互方法及装置 | |
CN111131499A (zh) | 并发和异步任务处理方法及其设备 | |
CN103685363A (zh) | 一种高效可靠的多任务处理方法及系统 | |
CN112231004A (zh) | 云桌面终端usb重定向系统 | |
CN115361348B (zh) | 由数据采集设备执行的与web浏览器通信的方法 | |
US20150081774A1 (en) | System and method for implementing augmented object members for remote procedure call | |
US20210334185A1 (en) | Task based service management platform | |
CN113055493B (zh) | 数据包处理方法、装置、系统、调度设备和存储介质 | |
CN109800035B (zh) | 一种算法集成服务框架系统 | |
CN112165529A (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20200714 Termination date: 20210608 |
|
CF01 | Termination of patent right due to non-payment of annual fee |