CN106209945B - 基于多连接的数据发送方法及装置 - Google Patents
基于多连接的数据发送方法及装置 Download PDFInfo
- Publication number
- CN106209945B CN106209945B CN201510229457.4A CN201510229457A CN106209945B CN 106209945 B CN106209945 B CN 106209945B CN 201510229457 A CN201510229457 A CN 201510229457A CN 106209945 B CN106209945 B CN 106209945B
- Authority
- CN
- China
- Prior art keywords
- target data
- data
- connection
- compressed
- data stream
- 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.)
- Active
Links
Landscapes
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请提供了基于多连接的数据发送方法及装置,该方法包括:多连接建立过程和数据发送过程,其中,所述多连接建立过程包括:响应于客户端发送的多连接的建立请求,生成与所述多连接唯一对应的会话标识;依据所述会话标识建立与客户端之间的多连接;所述数据发送过程包括:响应于当前提交的目标数据流,将所述目标数据流通过建立的所述多连接发送至所述客户端。在本申请实施例中,即使多连接中当前正在发送数据的连接的速度变慢,也可以采用该多连接中剩余连接来继续发送数据流,从而可以弥补速度变慢的连接所带来的波动,使得数据流的发送速度趋于平滑。
Description
技术领域
本申请涉及互联网技术领域,特别涉及一种基于多连接的数据发送方法及装置、一种基于多连接的数据接收方法及装置。
背景技术
目前,随着互联网的发展,越来越多的用户或者企业采用互联网收发数据。一般情况下,在发送端和接收端传输数据时,需要在发送端和接收端建立一个数据连接,然后通过该数据连接传输目标数据,待传输完毕之后,再释放该数据连接即可。
发明内容
但是发明人在研究过程中发现,现有技术在发送数据的时候,都是使用单连接的发送方式,即,仅仅在发送端和接收端之间建立一个数据连接来发送数据,这就使得在网络带宽有限并且网络延迟较大的情况下,很容易产生发送速度的波动;进一步的,现有技术在发送目标数据时,如果数据量较大,还会占用较多的网络资源和耗费较多的时间。
基于此,本申请所要解决的技术问题是提供一种基于多连接的数据发送和接收方法,用以尽量避免现有技术中采用单连接的发送方式造成的发送速度容易产生波动的现象,进一步的,还提过批量压缩的功能减少网络资源和时间和消耗。
本申请还提供了一种基于多连接的数据发送装置,用以保证上述方法在实际中的实现及应用。
为了解决上述问题,本申请公开了一种基于多连接的数据发送方法,应用于服务器上,该方法包括:多连接建立过程和数据发送过程,其中,
所述多连接建立过程包括:
响应于客户端发送的多连接的建立请求,生成与所述多连接唯一对应的会话标识;
依据所述会话标识建立与客户端之间的多连接;
所述数据发送过程包括:
响应于当前提交的目标数据流,将所述目标数据流通过建立的所述多连接发送至所述客户端。
本申请公开了一种基于多连接的数据接收方法,该方法应用于客户端,包括:多连接建立过程和数据接收过程,其中,
所述多连接建立过程包括:
向服务器发送多连接的建立请求;
接收服务器返回的、与所述多连接唯一对应的会话标识;
依据所述会话标识建立与服务器之间的多连接;
所述数据接收过程包括:
通过建立的所述多连接接收服务器发送的目标数据流。
本申请公开了一种基于多连接的数据发送装置,集成于服务器上,该装置包括:第一多连接建立单元和数据发送单元,其中,
所述第一多连接建立单元包括:
生成会话标识模块,用于响应于客户端发送的多连接的建立请求,生成与所述多连接唯一对应的会话标识;
第一建立模块,用于依据所述会话标识建立与客户端之间的多连接;
所述数据发送单元包括数据发送模块,所述数据发送模块用于响应于当前提交的目标数据流,将所述目标数据流通过建立的所述多连接发送至所述客户端。
本申请公开了一种基于多连接的数据接收方法,集成于客户端上,包括:多连接建立单元和数据接收单元,其中,
所述多连接建立单元包括:
发送请求模块,用于向服务器发送多连接的建立请求;
接收会话标识模块,用于接收服务器返回的、与所述多连接唯一对应的会话标识;
第二建立模块,用于依据所述会话标识建立与服务器之间的多连接;
所述数据接收单元包括:
数据接收模块,用于通过建立的所述多连接接收服务器发送的目标数据流。
与现有技术相比,本申请包括以下优点:
在本申请实施例中,服务器采用与客户端之间的多连接发送即时的数据流,这样的话,即使多连接中当前正在发送数据的连接的速度变慢,也可以采用该多连接中剩余连接来继续发送数据流,从而可以弥补速度变慢的连接所带来的波动,使得数据流的发送速度趋于平滑。进一步的,在本实施例中,针对存储缓冲区中的数据,也是待存储缓冲区的存储空间满了之后再批量压缩数据流,从而更进一步的减少了实际发送数据流的网络流量,降低了网络堵塞出现的可能性,使得数据链路的质量得到了保证。
当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请的基于多连接的数据发送方法实施例的流程图;
图2是本申请的基于多连接的数据接收方法实施例的流程图;
图3是本申请的基于多连接的数据发送装置实施例的结构框图;
图4是本申请的基于多连接的数据接收装置实施例的结构框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请可用于众多通用或专用的计算装置环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器装置、包括以上任何装置或设备的分布式计算环境等等。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
参考图1,示出了本申请一种基于多连接的数据发送方法实施例的流程图,应用于服务器上进行数据发送,本实施例可以包括多连接建立过程和数据发送过程,其中,多连接建立过程包括步骤101~步骤102,数据发送过程包括步骤103,本实施例具体包括以下步骤:
步骤101:响应于客户端发送的多连接的建立请求,生成与所述多连接唯一对应的会话标识。
在本实施例中,多连接的数据发送指的是针对实时的数据流的多连接发送,也即,数据流会被切分到多个连接中去,可以被附加自定义的首部,到达接收端以后会进行数据流的重组。本实施例应用于发送端的发送组件,也即服务器(Server)。而和服务器交互用于通过多连接接收数据的接收组件,也即客户端(Client)。
首先,当服务器运行起来以后,会开放一个端口,等待客户端的连接,客户端会向服务器发送多连接的建立请求,从而通过该建立请求来向服务器索取会话(Session)标识。客户端会先建立一个和服务器之间的协商连接,然后通过该协商连接来向服务器发送多连接的建立请求,可以在多连接的建立请求中携带多连接的个数信息,例如,4个,那么加上之间的协商连接,客户端和服务器之间将建立一共5个连接的多连接。
在实际应用中,服务器在建立和客户端之间的协商连接后,会针对客户端需要建立的多连接,来生成一个与该多连接唯一对应的会话标识,并将该会话标识发送给客户端,该会话即实际中发生数据流的管道。
步骤102:依据所述会话标识建立与客户端之间的多连接。
然后客户端得到这个会话标识以后会带着自己的用户信息以及会话标识再向服务器发送启动剩下的4个连接的消息。服务器拿到客户端发送的启动数据流的连接的消息以后,还可以将这个已经建立好的多连接按照会话标识分组通知给需要发送数据流的用户,这样用户也就能够看到会话了,用户只需要调用类似写(write)和读(read)函数进行发送或读取数据的操作就可以了。
可以理解的是,在多连接建立的过程中,多个带有相同的会话标识的连接(socket)会被分配到同一个会话(session)中,而用户需要发送的数据流可以在服务器通过同一个session的某个socket发送到客户端。
在介绍完多连接的建立过程中,进入数据发送流程,步骤103:响应于当前提交的目标数据流,将所述目标数据流通过建立的所述多连接发送至所述客户端。
因为服务器在成功和客户端建立多连接之后,也会将该多连接对应的会话标识通知给用户,所以用户可以直接使用服务器提供的write函数来向服务器提交数据流。该write函数的操作会将数据流的数据复制到服务器提供的缓冲区中。
其中,在实际应用中步骤103具体可以包括:
步骤A1:响应于当前提交的目标数据流,判断用于存放目标数据流的存储缓冲区是否有足够的存储空间,如果是,则进入步骤A2。
在本步骤中,服务器采用了两种缓冲区来存储数据流。一个是接收用户提交的数据流的双缓冲buffer,叫做存储缓冲区(CacheBuffer),另一个存放压缩后的数据流发送buffer,叫做发送缓冲区。如果用户当前提交了目标数据流,则服务器会先去试探当前正在发送数据的连接对应的存储缓冲区是否有足够的存储空间或者是否可写,如果存储缓冲区中有足够的存储空间才会触发后续写入数据流的步骤。其中,需要说明的是,本实施例中的多连接中的每一个连接都对应一个存储缓冲区和一个发送缓冲区。
步骤A2:将所述目标数据流存储至所述存储缓冲区中。
如果存储缓冲区可写,就直接将目标数据流存放到该存储缓冲区中,另外还可以返回给用户写入成功的信息。当然,如果服务器判断得到存储缓冲区不可写,那么可以返回给用户暂时没有更多的存储空间,这种情况说明用户提交数据流的速度超过了数据流的发送速度,并且服务器可以继续执行步骤A1判断存储缓冲区是否可写。
其中,步骤A2具体可以包括如下所示的步骤A21~A22:
步骤A21:将所述目标数据流中的目标数据按照预先设置的第一数据格式添加第一数据头。
服务器在将数据流写入存储缓冲区的过程中,可以对数据流做一次协议编码,转换为内部发送的协议格式,编码的过程就是在数据流前面添加一个首部,即第一数据头。其中,第一数据头可以包括:数据类型type、数据长度length和数据标识MessageID,该数据类型用于表示所述目标数据是否进行了切割,该数据长度为一个目标数据的长度,该数据标识用于按照各个目标数据的顺序唯一标识目标数据流中的一个目标数据。
参考表1所示,为一个第一数据头的示例:
表1
数据类型type | 数据长度length | 数据标识MessageID |
在表1中,对于数据类型type,如果小于2MB的认为是小记录,直接发送该目标数据即可,而如果大于2MB就可以按照2MB对目标数据进行切割。对于大记录,第一个切割的数据块的数据类型type的值可以为9,中间的数据块对应的数据类型type的值可以为10,直到最后一个数据块对应的数据类型type的值为11,这些值可以帮助后续在客户端进行大记录的数据流重组的时候进行校验。而对于小记录,数据长度length的值可以就是自身的长度,而对于大记录,数据长度length可以为大记录对应的总长度。消息标识MessageID则主要用于对每一个目标数据进行标示,用来后续在接收端对目标数据进行重组时排序使用。数据类型type的长度可以为4bit,数据长度length的值可以为28bit,而消息标识的长度可以为32bit。
步骤A22:将添加第一数据头后的目标数据存储至所述存储缓冲区中。
在对目标数据添加首部之后,将添加首部的目标数据存储至存储缓冲区中。
在将目标数据存储至存储缓冲区之后,接着进入步骤A3:判断当前时间是否已经结束预设的休眠时间周期,如果是,进入步骤A4。
在本实施例中,服务器可以采用定时器流程,即,预先设置一个休眠时间周期,例如,5ms,则每隔5ms的休眠事件,服务器就开始发送目标数据流,在这种情况下,如果用户将目标数据写入了存储缓冲区中,就可以判断当前时间是否已经结束预设的休眠时间周期,例如,是否到达5ms的休眠时间,如果到达了,就可以对存储缓冲区中的目标数据流进行压缩,进而再将压缩后的目标数据流存储至发送缓冲区中。
在本实施例中,因为存储缓冲区采用的是双缓冲buffer,即,存储缓冲区实际上有两个子缓冲区,这两个子缓冲区在用户写入目标数据流的过程中互相切换。那么当休眠时间周期到达时,服务器会先读取当前指向的那个子缓冲区,看其中是否目标数据流,如果有目标数据流并且存储空间还要剩余的话,就对该子缓冲区中的目标数据流进行压缩,进而发送压缩后的目标数据流,然后等待下一个休眠时间周期的到来。而如果当前指向的子缓冲区中有目标数据流且存储空间已满,则将该子缓冲区中的目标数据流进行压缩并发送之后,还需要去另一个子缓冲区中查看是否有目标数据流需要进行压缩,以此类推,如果在切换两个子缓冲区的过程中发现两个子缓冲区中一直有目标数据流等待压缩,说明用户写入目标数据流的速度很快,因此在这种情况下,就可以连续切换子缓冲区进行目标数据流的压缩和发送,而不考虑休眠时间周期是否到来。
步骤A4:将存储缓冲区中的目标数据流进行压缩。
步骤A5:将压缩后的目标数据流存储至发送缓冲区中。
可以理解的是,在对存储缓冲区的数据进行压缩之前,服务器可以先判断发送缓冲区中是否有足够的存储空间容纳压缩后的数据,如果有再进行压缩,以便后续从发送缓冲区中发送数据。如果发送缓冲区中没有足够的存储空间,还是说明用户产生数据的速度超过了网络速度,会进行阻塞。
具体的,步骤A5可以包括:
步骤A51:将所述压缩后的目标数据流中的压缩数据,按照预先设置的第二数据格式添加第二数据头;其中,所述第二数据头包括:压缩标志、压缩后的数据长度、压缩前的源长度和压缩后的数据内容。
在将压缩后的目标数据流中的压缩数据存储至发送缓冲区之前,还可以进行一次编码,即为压缩后的数据添加第二数据头。
其中,参考表2所示,为第二数据头的格式示例:
表2
其中,第二数据头包括压缩标识Type,用来标示对应的目标数据是否是压缩数据,还可以设置默认情况,如果目标数据的长度小于500bit就是未压缩数据。压缩后的长度CompressLen用来表示目标数据压缩后的数据长度,压缩前的源长度srcLen则表示对应的未压缩数据的长度,压缩后的数据内容Data即是压缩后的数据内容。
步骤A52:将添加第二数据头后的压缩数据存储至所述发送缓冲区中。
在添加第二数据头之后,将添加第二数据头的压缩数据存储至发送缓冲区中,以便将压缩后的数据发送给客户端后,客户端可以按照表1和表2的编码方式进行目标数据的接收和解压。
接着进入步骤A6:判断所述发送缓冲区的存储空间是否用完,如果是,则进入步骤A7。
在将数据压缩后存储至发送缓冲区后,判断发送缓冲区的存储空间是否已满,如果满了,再一并将发送缓冲区中的压缩数据一起发送给客户端,如果没有满,可以继续执行对存储缓冲区中的数据进行压缩的步骤。
步骤A7:将所述目标数据流通过建立的所述多连接发送至所述客户端。
具体的,在将发送缓冲区中的目标数据流通过多连接发送给客户端的时候,可以先通过多连接中最先建立的第一个连接来发送目标数据流,如果第一个连接发送缓慢再试探该多连接中的其他连接是否可用,如果可用再通过其他连接发送目标数据流。因为本申请实施例中的多连接统一只有一个会话标识,所以不管通过该会话标识对应的哪一个连接向客户端发送数据,都能保证客户端在接收到数据之后的连贯性。
具体的,步骤A7可以包括步骤A71~步骤A73:
步骤A71:将所述目标数据流通过所述多连接中最先建立的第一个连接确定为当前连接,将所述目标数据流通过所述当前连接发送至所述客户端。
步骤A72:在发送所述目标数据流的过程中,判断所述当前连接对应的发送缓冲区是否用完,如果否,则继续将所述目标数据流通过所述当前连接发送至所述客户端;如果是,则进入步骤A73。
在本实施例中,判断当前发送目标数据流的连接是否可以继续发送,可以通过用户是否还能成功向该连接对应的存储缓冲区中写入目标数据流来实现。如果用户无法成功向该连接对应的存储缓冲区中写入目标数据流,则说明当前连接发送数据的速度已经比较缓慢或者已经不可用了,在这种情况下,就从当前连接切换到同一个多连接中的其他连接,来试探该其他连接对应的存储缓冲区是否可以写入目标数据流,如果可以写入,则可以采用可写入目标数据流的该其他连接来发送目标数据流。
步骤A73:选择所述多连接中剩余的其他任意一个剩余连接作为当前连接,并执行将所述目标数据流通过所述当前连接发送至所述客户端的步骤,直至所述目标数据流成功发送至客户端,或者,所述多连接中的全部连接都判断完毕。
当然,可以理解的是,因为服务器发送目标数据流是一个定时器流程,因此,在执行步骤103的过程中,还可以包括:
步骤104:判断发送所述目标数据流的时间长度是否达到预先设置的发送时间阈值,如果是,则进入步骤105。
服务器判断发送目标数据流的持续时间长度是否已经达到了预先设置的发送时间阈值,例如0.5ms,如果已经持续发送了0.5ms,则可以暂停发送目标数据流进行休眠,例如可以暂停0.5ms,然后再继续执行发送目标数据流的步骤。
步骤105:暂停所述目标数据流的发送,并当暂停时间到达所述发送时间阈值时,继续执行将所述目标数据流通过建立的所述多连接发送至所述客户端的步骤。
在本实施例中,服务器采用与客户端之间的多连接发送即时的数据流,这样的话,即使多连接中当前正在发送数据的连接的速度变慢,也可以采用该多连接中剩余连接来继续发送数据流,从而可以弥补速度变慢的连接所带来的波动,使得数据流的发送速度趋于平滑。进一步的,在本实施例中,针对存储缓冲区中的数据,也是待休眠时间周期到达之后再批量压缩数据流,从而更进一步的减少了实际发送数据流的网络流量,降低了网络堵塞出现的可能性,使得数据链路的质量得到了保证。
参考图2,示出了本申请一种基于多连接的数据接收方法实施例的流程图,应用于客户端上进行数据接收,本实施例可以包括多连接建立过程和数据接收过程,其中,多连接建立过程包括步骤201~步骤203,数据发送过程包括步骤204,本实施例具体包括以下步骤:
步骤201:向服务器发送多连接的建立请求。
在本申请实施例中,运行在接收端的接收组件,可以称为客户端(Client)。具体客户端和服务器之间建立多连接的过程可以参考步骤101~步骤102所示,在此不再赘述。
步骤202:接收服务器返回的、与所述多连接唯一对应的会话标识。
步骤203:依据所述会话标识建立与服务器之间的多连接。
在建立与服务器之间的多连接之后,进入步骤204:通过建立的所述多连接接收服务器发送的目标数据流。
客户端通过与服务器之间的多连接来接收服务器向客户端发送的目标数据流。
具体的,步骤204具体可以为步骤B1:
步骤B1:通过建立的多连接中的任意一个当前连接接收服务器发送的目标数据流。
具体的,因为服务器会选择一个连接来发送压缩后的目标数据流,因此,客户端也相应通过该连接来从服务器接收压缩后的目标数据流,再进行解压从而得到原始的目标数据流。
具体的,客户端在解压目标数据流之后,在步骤B1之后还可以包括:
步骤B2:依据所述目标数据流中的目标数据的数据标识,按照先后顺序组合所述目标数据。
具体的,因为消息可能会在服务器侧分发到多连接中不同的连接当中,因此需要客户端根据数据标识对目标数据进行重新的排序。因为解压后的目标数据流中的目标数据具有第一数据头,而第一数据头又包括了数据类型、数据长度和数据标识,因此,客户端可以按照目标数据的数据标识,来按照目标数据流本来的数据先后顺序来组合目标数据。例如,客户端依次接收到了四个目标数据,这四个目标数据的数据标识依次为:2、3、1和4,那么最后将按照1、2、3和4的顺序来组合这个四个目标数据。
为了保证在服务器和客户端之间的目标数据的数据标识是相同的,客户端和服务器关于数据标识的生成器是一样的,初始值也都为0,因此服务器在发送目标数据流的时候会将数据标识依次加1然后编码进去,而客户端在接收的时候每读取一个目标数据会将数据标识加1,这样就能保证在服务器和客户端之间目标数据的一致性。
步骤B3:将组合好的目标数据显示给用户。
最后将组合好的目标数据显示给用户供用户读取。
可以理解的是,在实际应用中,如果客户端没有接收到某个数据标识的目标数据,或者接收到的目标数据的数据标识不连续,则可以确定有目标数据丢失了,可以进行报错处理等。
具体的,在客户端也可以划分出两个缓冲区来接收目标数据,那么,步骤B1具体可以包括:
步骤C1:响应于服务器通过建立的多连接中的任意一个当前连接发送的、压缩后的目标数据流,判断用于存放压缩后的目标数据流的压缩缓冲区是否有足够的存储空间,如果是,则进入步骤C2。
客户端如果当前探测到服务器发送了压缩后的目标数据流,则判断用于存放压缩后的目标数据流的压缩缓冲区是否有足够的存储空间,如果有,则将压缩后的目标数据流存储至压缩缓冲区中。如果没有,则可以等待下一次对存储缓冲区的试探。其中,压缩缓冲区用于在客户端存储接收到的压缩后的目标数据。
步骤C2:将所述压缩后的目标数据流存储至所述压缩缓冲区中。
步骤C3:判断所述压缩缓冲区的存储空间是否用完,如果是,则进入步骤C4。
接着判断压缩缓冲区的存储空间是否已满,如果压缩缓冲区中的存储空间满了,则一次性的将压缩缓冲区中的目标数据流进行解压,并将解压后的目标数据存储至缓存缓冲区中。该缓存缓冲区用于在客户端存储解压后的数据。
步骤C4:将所述压缩缓冲区中压缩后的目标数据流进行解压后存储至缓存缓冲区中。
因为在服务器端压缩后的目标数据添加了第二数据头,因此,客户端在接收到服务器发送的目标数据流后,可以读取压缩后的压缩数据的第二数据头,从而得到压缩前的源长度,来判断缓存缓冲区中的存储空间是否可以容纳解压后的数据,如果可以再对压缩缓冲区中的目标数据进行解压。
其中,步骤C4具体可以包括:
步骤C41:读取所述压缩后的目标数据流中的压缩数据的第二数据头。
首先读取压缩后的目标数据流中的压缩数据的第二数据头,来获取到压缩数据的压缩前的源长度。
步骤C42:判断所述缓存缓冲区的存储空间是否大于所述压缩数据的压缩前的源长度,如果是,则进入步骤B43。
将缓存缓冲区中的存储空间大小于压缩前的源长度进行对比,如果缓存缓冲区的存储空间足够容纳压缩前的目标数据,则执行步骤C43。
步骤C43:将压缩后的目标数据流进行解压,并将解压后的目标数据流存储至缓存缓冲区中。
在本申请实施例中,服务器采用与客户端之间的多连接发送即时的数据流,而客户端也采用多连接来接收数据流,这样的话,即使多连接中当前正在接收数据的连接的速度变慢,客户端也可以相应的采用服务器选择的多连接中的其他剩余连接来继续接收数据流,从而可以弥补速度变慢的连接所带来的波动,使得数据流的接收速度趋于平滑。进一步的,在本实施例中,针对压缩缓冲区中的数据,也是待压缩缓冲区的存储空间满了之后再批量解压缩数据流,从而更进一步的降低了网络堵塞出现的可能性,使得数据链路的质量得到了保证。
对于前述的方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
与上述本申请一种基于多连接的数据发送方法实施例所提供的方法相对应,参见图3,本申请还提供了一种基于多连接的数据发送装置实施例,在本实施例中,该装置集成于服务器上,本实施例可以包括:第一多连接建立单元30和数据发送单元31,其中,
所述第一多连接建立单元30可以包括:
生成会话标识模块301,用于响应于客户端发送的多连接的建立请求,生成与所述多连接唯一对应的会话标识;
第一建立模块302,用于依据所述会话标识建立与客户端之间的多连接;
所述数据发送单元31可以包括数据发送模块311,所述数据发送模块用于响应于当前提交的目标数据流,将所述目标数据流通过建立的所述多连接发送至所述客户端。
其中,所述数据发送模块311,具体可以包括:
第一判断子模块,用于响应于当前提交的目标数据流,判断用于存放目标数据流的存储缓冲区是否有足够的存储空间;第一存储子模块,用于在所述第一判断子模块的结果为是的情况下,将所述目标数据流存储至所述存储缓冲区中;第二判断子模块,用于判断当前时间是否已经结束预设的休眠时间周期;压缩子模块,用于在所述第二判断子模块的结果为是的情况下,将所述存储缓冲区中的目标数据流进行压缩;第二存储子模块,用于将所述压缩模块压缩后的目标数据流存储至发送缓冲区中;和,第一发送子模块,用于将所述发送缓冲区中压缩后的目标数据流通过建立的所述多连接发送至所述客户端。
其中,第一存储子模块具体可以包括:
第一添加子模块,用于将所述目标数据流中的目标数据按照预先设置的第一数据格式添加第一数据头;其中,所述第一数据头包括:数据类型、数据长度和数据标识,所述数据类型用于表示所述目标数据是否进行了切割,所述数据长度为一个目标数据的长度,所述数据标识用于按照各个目标数据的顺序唯一标识所述目标数据流中的一个目标数据;和,第三存储子模块,用于将添加第一数据头后的目标数据存储至所述存储缓冲区中。
其中,第二存储子模块具体可以包括:
第二添加子模块,用于将所述压缩后的目标数据流中的压缩数据,按照预先设置的第二数据格式添加第二数据头;其中,所述第二数据头包括:压缩标志、压缩后的数据长度、压缩前的源长度和压缩后的数据内容;和,第四存储子模块,用于将添加第二数据头后的压缩数据存储至所述发送缓冲区中。
所述数据发送模块包括:
确定子模块,用于将所述目标数据流通过所述多连接中最先建立的第一个连接确定为当前连接;其中,需要说明的是,本实施例中的多连接中的每一个连接都对应一个存储缓冲区和一个发送缓冲区;
第二发送子模块,用于将所述目标数据流通过所述当前连接发送至所述客户端;
第三判断子模块,用于在发送所述目标数据流的过程中,判断所述当前连接对应的存储缓冲区是否写入目标数据流失败;
第一触发子模块,用于在所述判断子模块的结果为否的情况下,触发所述发送子模块;
选择子模块,用于在所述判断子模块的结果为是的情况下,选择所述多连接中剩余的其他任意一个剩余连接作为当前连接,并触发所述发送子模块,直至所述目标数据流成功发送至客户端,或者,所述多连接中的全部连接都判断完毕。
其中,数据发送单元31还可以包括:
判断模块,用于判断发送所述目标数据流的时间长度是否达到预先设置的发送时间阈值;暂停模块,用于在所述判断模块的结果为是的情况下,暂停所述目标数据流的发送;和,触发模块,用于当暂停时间到达所述发送时间阈值时,触发所述数据发送模块。
本实施例中的服务器采用与客户端之间的多连接发送即时的数据流,这样的话,即使多连接中当前正在发送数据的连接的速度变慢,也可以采用该多连接中剩余连接来继续发送数据流,从而可以弥补速度变慢的连接所带来的波动,使得数据流的发送速度趋于平滑。进一步的,在本实施例中,针对存储缓冲区中的数据,也是休眠时间周期到达之后再批量压缩数据流,从而更进一步的减少了实际发送数据流的网络流量,降低了网络堵塞出现的可能性,使得数据链路的质量得到了保证。
与上述本申请一种基于多连接的数据接收方法实施例所提供的方法相对应,参见图4,本申请还提供了一种基于多连接的数据接收装置实施例,在本实施例中,该装置集成于客户端上,本实施例可以包括:包括:第二多连接建立单元40和数据接收单元41,其中,
所述第二多连接建立单元40可以包括:
发送请求模块401,用于向服务器发送多连接的建立请求;接收会话标识模块402,用于接收服务器返回的、与所述多连接唯一对应的会话标识;和,第二建立模块403,用于依据所述会话标识建立与服务器之间的多连接;所述多连接与所述会话标识相对应。
其中,所述数据接收单元41可以包括:
数据接收模块411,用于通过建立的所述多连接接收服务器发送的目标数据流。
所述数据接收模块具体用于:通过建立的多连接中的任意一个当前连接接收服务器发送的目标数据流。
其中,所述数据接收模块411具体可以包括:
第四判断子模块,用于响应于服务器通过建立的多连接中的任意一个当前连接发送的、压缩后的目标数据流,判断用于存放压缩后的目标数据流的压缩缓冲区是否有足够的存储空间;第五存储子模块,用于在所述第四判断子模块的结果为是的情况下,将所述压缩后的目标数据流存储至所述压缩缓冲区中;第五判断子模块,用于判断所述压缩缓冲区的存储空间是否用完;和,第六存储子模块,用于在所述第五判断子模块的结果为是的情况下,将所述压缩缓冲区中压缩后的目标数据流进行解压后存储至缓存缓冲区中。
其中,所述压缩后的目标数据流中的压缩数据包括第二数据头,所述第二数据头包括:压缩标志、压缩后的压缩长度、压缩前的源长度和压缩数据内容;所述第六存储子模块包括:
读取子模块,用于读取所述压缩后的目标数据流中的压缩数据的第二数据头;第六判断子模块,用于判断所述缓存缓冲区的存储空间是否大于所述压缩数据的压缩前的源长度;解压子模块,用于在所述第六判断子模块的结果为是的情况下,将压缩后的目标数据流进行解压;和,第七存储子模块,用于将解压后的目标数据流存储至缓存缓冲区中。
其中,所述解压后的目标数据流中的目标数据具有第一数据头,所述第一数据头包括:数据类型、数据长度和数据标识,所述数据类型用于表示所述目标数据是否进行了切割,所述数据长度为一个目标数据的长度,所述数据标识用于唯一标识所述目标数据流中的一个目标数据;所述数据接收模块411还可以包括:
组合子模块,用于依据所述目标数据流中的目标数据的数据标识,按照先后顺序组合所述目标数据;和,显示子模块,用于将组合好的目标数据显示给用户。
本实施例的客户端采用多连接来接收数据流,这样的话,即使多连接中当前正在接收数据的连接的速度变慢,客户端也可以相应的采用服务器选择的多连接中的其他剩余连接来继续接收数据流,从而可以弥补速度变慢的连接所带来的波动,使得数据流的接收速度趋于平滑。进一步的,在本实施例中,针对压缩缓冲区中的数据,也是待压缩缓冲区的存储空间满了之后再批量解压缩数据流,从而更进一步的降低了网络堵塞出现的可能性,使得数据链路的质量得到了保证。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语″包括″、″包含″或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句″包括一个......″限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本申请所提供的基于多连接的数据发送方法及装置进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (16)
1.一种基于多连接的数据发送方法,其特征在于,应用于服务器上,该方法包括:多连接建立过程和数据发送过程,其中,
所述多连接建立过程包括:
响应于客户端发送的多连接的建立请求,生成与所述多连接唯一对应的会话标识;
依据所述会话标识建立与客户端之间的多连接;
所述数据发送过程包括:
响应于当前提交的目标数据流,将所述目标数据流通过建立的所述多连接发送至所述客户端;
在将所述目标数据流通过建立的所述多连接发送至所述客户端的过程中,还包括:
判断发送所述目标数据流的时间长度是否达到预先设置的发送时间阈值,如果是,则暂停所述目标数据流的发送,并当暂停时间到达所述发送时间阈值时,继续执行将所述目标数据流通过建立的所述多连接发送至所述客户端的步骤。
2.根据权利要求1所述的方法,其特征在于,所述响应于当前提交的目标数据流,将所述目标数据流通过建立的所述多连接发送至所述客户端,包括:
响应于当前提交的目标数据流,判断用于存放目标数据流的存储缓冲区是否有足够的存储空间,如果是,则将所述目标数据流存储至所述存储缓冲区中;
判断当前时间是否已经结束预设的休眠时间周期,如果是,将所述存储缓冲区中的目标数据流进行压缩,并将压缩后的目标数据流存储至发送缓冲区中;
将所述发送缓冲区中压缩后的目标数据流通过建立的所述多连接发送至所述客户端。
3.根据权利要求2所述的方法,其特征在于,所述将所述目标数据流存储至所述存储缓冲区中,包括:
将所述目标数据流中的目标数据按照预先设置的第一数据格式添加第一数据头;其中,所述第一数据头包括:数据类型、数据长度和数据标识,所述数据类型用于表示所述目标数据是否进行了切割,所述数据长度为一个目标数据的长度,所述数据标识用于按照各个目标数据的顺序唯一标识所述目标数据流中的一个目标数据;
将添加第一数据头后的目标数据存储至所述存储缓冲区中。
4.根据权利要求2所述的方法,其特征在于,所述将压缩后的目标数据流存储至发送缓冲区中,包括:
将所述压缩后的目标数据流中的压缩数据,按照预先设置的第二数据格式添加第二数据头;其中,所述第二数据头包括:压缩标志、压缩后的数据长度、压缩前的源长度和压缩后的数据内容;
将添加第二数据头后的压缩数据存储至所述发送缓冲区中。
5.根据权利要求2所述的方法,其特征在于,所述将所述目标数据流通过建立的所述多连接发送至所述客户端,包括:
将所述目标数据流通过所述多连接中最先建立的第一个连接确定为当前连接,将所述目标数据流通过所述当前连接发送至所述客户端;其中,所述多连接中的每一个连接都对应一个存储缓冲区和一个发送缓冲区;
在发送所述目标数据流的过程中,判断所述当前连接对应的存储缓冲区是否写入目标数据流失败,如果否,则继续将所述目标数据流通过所述当前连接发送至所述客户端;
如果是,则选择所述多连接中剩余的其他任意一个剩余连接作为当前连接,并执行将所述目标数据流通过所述当前连接发送至所述客户端的步骤,直至所述目标数据流成功发送至客户端,或者,所述多连接中的全部连接都判断完毕。
6.一种基于多连接的数据接收方法,其特征在于,该方法应用于客户端,包括:多连接建立过程和数据接收过程,其中,
所述多连接建立过程包括:
向服务器发送多连接的建立请求;
接收服务器返回的、与所述多连接唯一对应的会话标识;
依据所述会话标识建立与服务器之间的多连接;
所述数据接收过程包括:
通过建立的所述多连接接收服务器发送的目标数据流;
所述通过建立的所述多连接接收服务器发送的目标数据流,包括:
通过建立的多连接中的任意一个当前连接接收服务器发送的目标数据流;
所述通过建立的多连接中的任意一个当前连接接收服务器发送的目标数据流,包括:
响应于服务器通过建立的多连接中的任意一个当前连接发送的、压缩后的目标数据流,判断用于存放压缩后的目标数据流的压缩缓冲区是否有足够的存储空间,如果是,则将所述压缩后的目标数据流存储至所述压缩缓冲区中;
判断所述压缩缓冲区的存储空间是否用完,如果是,则将所述压缩缓冲区中压缩后的目标数据流进行解压后存储至缓存缓冲区中。
7.根据权利要求6所述的方法,其特征在于,所述解压后的目标数据流中的目标数据具有第一数据头,所述第一数据头包括:数据类型、数据长度和数据标识,所述数据类型用于表示所述目标数据是否进行了切割,所述数据长度为一个目标数据的长度,所述数据标识用于唯一标识所述目标数据流中的一个目标数据;则所述通过建立的多连接中的任意一个当前连接接收服务器发送的目标数据流之后,还包括:
依据所述目标数据流中的目标数据的数据标识,按照先后顺序组合所述目标数据;
将组合好的目标数据显示给用户。
8.根据权利要求6所述的方法,其特征在于,所述压缩后的目标数据流中的压缩数据包括第二数据头,所述第二数据头包括:压缩标志、压缩后的压缩长度、压缩前的源长度和压缩数据内容;
将所述压缩缓冲区中压缩后的目标数据流进行解压后存储至缓存缓冲区中,包括:
读取所述压缩后的目标数据流中的压缩数据的第二数据头;
判断所述缓存缓冲区的存储空间是否大于所述压缩数据的压缩前的源长度,如果是,则将压缩后的目标数据流进行解压,并将解压后的目标数据流存储至缓存缓冲区中。
9.一种基于多连接的数据发送装置,其特征在于,集成于服务器上,该装置包括:第一多连接建立单元和数据发送单元,其中,
所述第一多连接建立单元包括:
生成会话标识模块,用于响应于客户端发送的多连接的建立请求,生成与所述多连接唯一对应的会话标识;
第一建立模块,用于依据所述会话标识建立与客户端之间的多连接;
所述数据发送单元包括数据发送模块,所述数据发送模块用于响应于当前提交的目标数据流,将所述目标数据流通过建立的所述多连接发送至所述客户端;
所述数据发送单元还包括:
判断模块,用于判断发送所述目标数据流的时间长度是否达到预先设置的发送时间阈值;
暂停模块,用于在所述判断模块的结果为是的情况下,暂停所述目标数据流的发送;
触发模块,用于当暂停时间到达所述发送时间阈值时,触发所述数据发送模块。
10.根据权利要求9所述的装置,其特征在于,其中所述数据发送模块,包括:
第一判断子模块,用于响应于当前提交的目标数据流,判断用于存放目标数据流的存储缓冲区是否有足够的存储空间;
第一存储子模块,用于在所述第一判断子模块的结果为是的情况下,将所述目标数据流存储至所述存储缓冲区中;
第二判断子模块,用于判断当前时间是否已经结束预设的休眠时间周期;
压缩子模块,用于在所述第二判断子模块的结果为是的情况下,将所述存储缓冲区中的目标数据流进行压缩;
第二存储子模块,用于将所述压缩模块压缩后的目标数据流存储至发送缓冲区中;
第一发送子模块,用于将所述发送缓冲区中压缩后的目标数据流通过建立的所述多连接发送至所述客户端。
11.根据权利要求10所述的装置,其特征在于,所述第一存储子模块包括:
第一添加子模块,用于将所述目标数据流中的目标数据按照预先设置的第一数据格式添加第一数据头;其中,所述第一数据头包括:数据类型、数据长度和数据标识,所述数据类型用于表示所述目标数据是否进行了切割,所述数据长度为一个目标数据的长度,所述数据标识用于按照各个目标数据的顺序唯一标识所述目标数据流中的一个目标数据;
第三存储子模块,用于将添加第一数据头后的目标数据存储至所述存储缓冲区中。
12.根据权利要求10所述的装置,其特征在于,所述第二存储子模块包括:
第二添加子模块,用于将所述压缩后的目标数据流中的压缩数据,按照预先设置的第二数据格式添加第二数据头;其中,所述第二数据头包括:压缩标志、压缩后的数据长度、压缩前的源长度和压缩后的数据内容;
第四存储子模块,用于将添加第二数据头后的压缩数据存储至所述发送缓冲区中。
13.根据权利要求10所述的装置,其特征在于,所述数据发送模块包括:
确定子模块,用于将所述目标数据流通过所述多连接中最先建立的第一个连接确定为当前连接;其中,所述多连接中的每一个连接都对应一个存储缓冲区和一个发送缓冲区;
第二发送子模块,用于将所述目标数据流通过所述当前连接发送至所述客户端;
第三判断子模块,用于在发送所述目标数据流的过程中,判断所述当前连接对应的存储缓冲区是否写入目标数据流失败;
第一触发子模块,用于在所述判断子模块的结果为否的情况下,触发所述发送子模块;
选择子模块,用于在所述判断子模块的结果为是的情况下,选择所述多连接中剩余的其他任意一个剩余连接作为当前连接,并触发所述发送子模块,直至所述目标数据流成功发送至客户端,或者,所述多连接中的全部连接都判断完毕。
14.一种基于多连接的数据接收装置,其特征在于,集成于客户端上,包括:多连接建立单元和数据接收单元,其中,
所述多连接建立单元包括:
发送请求模块,用于向服务器发送多连接的建立请求;
接收会话标识模块,用于接收服务器返回的、与所述多连接唯一对应的会话标识;
第二建立模块,用于依据所述会话标识建立与服务器之间的多连接;
所述数据接收单元包括:
数据接收模块,用于通过建立的所述多连接接收服务器发送的目标数据流;
所述数据接收模块具体用于:通过建立的多连接中的任意一个当前连接接收服务器发送的目标数据流;
所述数据接收模块包括:
第四判断子模块,用于响应于服务器通过建立的多连接中的任意一个当前连接发送的、压缩后的目标数据流,判断用于存放压缩后的目标数据流的压缩缓冲区是否有足够的存储空间;
第五存储子模块,用于在所述判断子模块的结果为是的情况下,将所述压缩后的目标数据流存储至所述压缩缓冲区中;
第五判断子模块,用于判断所述压缩缓冲区的存储空间是否用完;
第六存储子模块,用于在所述判断子模块的结果为是的情况下,将所述压缩缓冲区中压缩后的目标数据流进行解压后存储至缓存缓冲区中。
15.根据权利要求14所述的装置,其特征在于,所述解压后的目标数据流中的目标数据具有第一数据头,所述第一数据头包括:数据类型、数据长度和数据标识,所述数据类型用于表示所述目标数据是否进行了切割,所述数据长度为一个目标数据的长度,所述数据标识用于唯一标识所述目标数据流中的一个目标数据;所述数据接收模块还包括:
组合子模块,用于依据所述目标数据流中的目标数据的数据标识,按照先后顺序组合所述目标数据;
显示子模块,用于将组合好的目标数据显示给用户。
16.根据权利要求14所述的装置,其特征在于,所述压缩后的目标数据流中的压缩数据包括第二数据头,所述第二数据头包括:压缩标志、压缩后的压缩长度、压缩前的源长度和压缩数据内容;所述第六存储子模块包括:
读取子模块,用于读取所述压缩后的目标数据流中的压缩数据的第二数据头;
第六判断子模块,用于判断所述缓存缓冲区的存储空间是否大于所述压缩数据的压缩前的源长度;
解压子模块,用于在所述第六判断子模块的结果为是的情况下,将压缩后的目标数据流进行解压;
第七存储子模块,用于将解压后的目标数据流存储至缓存缓冲区中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510229457.4A CN106209945B (zh) | 2015-05-07 | 2015-05-07 | 基于多连接的数据发送方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510229457.4A CN106209945B (zh) | 2015-05-07 | 2015-05-07 | 基于多连接的数据发送方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106209945A CN106209945A (zh) | 2016-12-07 |
CN106209945B true CN106209945B (zh) | 2019-08-23 |
Family
ID=57459277
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510229457.4A Active CN106209945B (zh) | 2015-05-07 | 2015-05-07 | 基于多连接的数据发送方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106209945B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107040581B (zh) * | 2017-01-25 | 2021-03-02 | 腾讯科技(深圳)有限公司 | 一种网络包发送方法、装置、服务器及系统 |
CN107343037B (zh) * | 2017-06-30 | 2020-07-07 | 郑州云海信息技术有限公司 | 一种分布式存储系统的数据传输方法及装置 |
CN111181900B (zh) * | 2018-11-13 | 2022-04-22 | 深圳光启高等理工研究院 | 一种数据报文发送和接收方法、存储介质及处理器 |
CN110557436B (zh) * | 2019-07-31 | 2022-06-21 | 视联动力信息技术股份有限公司 | 一种数据传输方法、装置、电子设备和存储介质 |
CN110764707A (zh) * | 2019-10-25 | 2020-02-07 | 苏州浪潮智能科技有限公司 | 数据处理方法及装置 |
CN110740351B (zh) * | 2019-11-14 | 2022-05-24 | 普联技术有限公司 | 一种传输流媒体数据的方法、设备及存储介质 |
CN114338479B (zh) * | 2022-01-04 | 2024-03-22 | 北京金山云网络技术有限公司 | 通讯方法、装置和系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101719918A (zh) * | 2009-11-27 | 2010-06-02 | 北京交通大学 | 一种改进的适用于多连接多路径的传输方法 |
CN103634299A (zh) * | 2013-11-14 | 2014-03-12 | 北京邮电大学 | 基于多连接的实时流媒体传输终端与方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9888042B2 (en) * | 2013-05-21 | 2018-02-06 | Citrix Systems, Inc. | Systems and methods for multipath transmission control protocol connection management |
-
2015
- 2015-05-07 CN CN201510229457.4A patent/CN106209945B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101719918A (zh) * | 2009-11-27 | 2010-06-02 | 北京交通大学 | 一种改进的适用于多连接多路径的传输方法 |
CN103634299A (zh) * | 2013-11-14 | 2014-03-12 | 北京邮电大学 | 基于多连接的实时流媒体传输终端与方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106209945A (zh) | 2016-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106209945B (zh) | 基于多连接的数据发送方法及装置 | |
CN107864084B (zh) | 数据包的传输方法和装置 | |
US11363089B2 (en) | Systems and methods for optimization of transmission of real-time data via network labeling | |
CN101674486B (zh) | 一种流媒体音视频同步方法及系统 | |
CN105338061A (zh) | 一种轻量级消息中间件的实现方法与系统 | |
RU2005104018A (ru) | Сжатие данных | |
CN102111419B (zh) | 一种基于消息中间件的客户端自动重连方法 | |
CN106161814A (zh) | 一种多方会议的混音方法和装置 | |
CN103607302B (zh) | 故障信息上报方法、监控设备及管理设备 | |
US10680742B2 (en) | Systems and methods for improved communication packet delivery over a public network | |
CN102118434A (zh) | 数据包传输方法和设备 | |
CN104503801B (zh) | 软件升级指令分发方法、通信服务器及终端设备 | |
CN110138617B (zh) | 数据传输质量测试方法、系统、电子设备及存储介质 | |
CN113055539B (zh) | 一种基于VoIP双冗余交换服务器的通信系统 | |
CN111147573A (zh) | 一种数据传输的方法和装置 | |
CN106973253A (zh) | 一种调整媒体流传输的方法及装置 | |
CN100456673C (zh) | 移动专用网络环境中有效发送接收数据的网络设备和方法 | |
US9986049B2 (en) | Systems and methods for selection of a best server for real-time packet transmission | |
CN108712320A (zh) | 消息推送方法及装置 | |
CN110391873A (zh) | 用于确定数据传送方式的方法、装置以及计算机程序产品 | |
CN112769743B (zh) | 一种报头压缩方法、装置及设备 | |
CN106850770B (zh) | 基于云计算服务的高效传输方法 | |
CN104769958A (zh) | 用于差错控制的重传和帧同步 | |
CN103428070B (zh) | 即时群体通信方法、会话管理服务器及客户端 | |
CN105376614A (zh) | 视频质量优化方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |