CN107465751B - 通信方法、装置、客户端及计算机存储介质 - Google Patents
通信方法、装置、客户端及计算机存储介质 Download PDFInfo
- Publication number
- CN107465751B CN107465751B CN201710725975.4A CN201710725975A CN107465751B CN 107465751 B CN107465751 B CN 107465751B CN 201710725975 A CN201710725975 A CN 201710725975A CN 107465751 B CN107465751 B CN 107465751B
- Authority
- CN
- China
- Prior art keywords
- service
- data packet
- client
- server
- communication
- 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
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/14—Session management
- H04L67/148—Migration or transfer of sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
Abstract
本发明公开了一种通信方法、装置、客户端及计算机存储介质。其中,方法包括:实时监测客户端与服务器端之间在第一预设时间段是否通过TCP服务进行过通信;若否,则启动TCP服务中的预设线程向服务器端发送协议包,以供服务器端确定是否允许客户端将通信服务由TCP服务切换为UDP服务;接收服务器端响应该协议包而发送的第一数据包;对第一数据包进行解析,得到第一数据包的类型以及第一数据包中预置的编码;若第一数据包为第一类型的数据包,且预置的编码为预设编码,则将通信服务由TCP服务切换为UDP服务,既能在一定程度上保持客户端与服务器端之间数据包传输的实时性,又能减轻服务器端的压力,节省服务器端资源,节省成本。
Description
技术领域
本发明涉及通信技术领域,具体涉及一种通信方法、装置、客户端及计算机存储介质。
背景技术
目前,客户端与服务器端之间进行通信主要采用以下两种通信方式:
方式一:基于Http协议的通信方式
客户端每隔一段时间或者根据需要通过Http接口向服务器端发送和请求数据,客户端和服务器端之间并不保持长连接的状态。这种通信方式的优点是不耗费客户端和服务器端的性能;缺点是不能保证数据传输的即时性,只有在客户端请求数据的时候才会更新数据。
方式二:基于TCP协议的通信方式
客户端与服务器端建立TCP长链接,并保持TCP长链接,以保证数据传输的实时性。这种通信方式的优点是客户端与服务器端之间的通信是实时的;缺点是耗费服务器端的资源,如果有新的客户端需要连接服务器时,只能通过增加服务器数量来解决这个问题,另外,如果一台服务器上连接了1万个客户端,而活跃用户只占20%即2千个,此时服务器还需要保持原有的通信通道,即1万个通信通道,如图1所示,如此就会造成服务器端资源的浪费。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的通信方法、通信装置、客户端及计算机存储介质。
根据本发明的一个方面,提供了一种通信方法,应用于客户端,方法包括:
实时监测客户端与服务器端之间在第一预设时间段是否通过TCP服务进行过通信;
若否,则启动TCP服务中的预设线程向服务器端发送协议包,以供服务器端确定是否允许客户端将通信服务由TCP服务切换为UDP服务;
接收服务器端响应该协议包而发送的第一数据包;
对第一数据包进行解析,得到第一数据包的类型以及第一数据包中预置的编码;
若第一数据包为第一类型的数据包,且预置的编码为预设编码,则将通信服务由TCP服务切换为UDP服务。
根据本发明的一个方面,提供了一种通信装置,应用于客户端,装置包括:
监测模块,用于实时监测客户端与服务器端之间在第一预设时间段是否通过TCP服务进行过通信;
第一发送模块,用于若监测到客户端与服务器端之间在第一预设时间段未通过TCP服务进行过通信,则启动TCP服务中的预设线程向服务器端发送协议包,以供服务器端确定是否允许客户端将通信服务由TCP服务切换为UDP服务;
接收模块,用于接收服务器端响应该协议包而发送的第一数据包;
解析模块,用于对第一数据包进行解析,得到第一数据包的类型以及第一数据包中预置的编码;
处理模块,用于若第一数据包为第一类型的数据包,且预置的编码为预设编码,则将通信服务由TCP服务切换为UDP服务。
根据本发明的又一方面,提供了一种客户端,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行上述通信方法对应的操作。
根据本发明的再一方面,提供了一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使所述处理器执行如上述通信方法对应的操作。
根据本发明提供的方案,在监测到客户端与服务器端之间在第一预设时间段未通过TCP服务进行过通信,将通信服务由TCP服务切换为UDP服务,既能在一定程度上保持客户端与服务器端之间数据包传输的实时性,又能减轻服务器端的压力,节省服务器端资源,节省成本。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了现有技术中客户端与服务器端基于TCP协议的通信方式的示意图;
图2示出了根据本发明一个实施例的通信方法的流程示意图;
图3示出了根据本发明另一个实施例的通信方法的流程示意图;
图4示出了客户端与服务器端基于本发明提供的通信方法进行通信的示意图;
图5示出了根据本发明一个实施例的通信装置的结构示意图;
图6示出了根据本发明另一个实施例的通信装置的结构示意图;
图7示出了根据本发明一个实施例的客户端的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
需要说明的是,本发明实施例中所涉及的客户端可以包括但不限于手机、个人数字助理(Personal Digital Assistant,PDA)、无线手持设备、平板电脑(TabletComputer)、个人电脑(Personal Computer,PC)、可穿戴设备(例如,智能眼镜、智能手表、智能手环等)等。
图2示出了根据本发明一个实施例的通信方法的流程示意图。如图2所示,该方法应用于客户端,方法包括以下步骤:
步骤S200,实时监测客户端与服务器端之间在第一预设时间段是否通过TCP服务进行过通信,若否则执行步骤S201。
其中,用户使用客户端的上的应用时,客户端与服务器端之间将建立TCP长链接,客户端与服务器端基于TCP协议进行通信,此时,服务器端与客户端进行通信的是网关服务器(Gateway服务器),其中,应用可以是安装在客户端上的本地程序(nativeApp),或者还可以是客户端上的浏览器的一个网页程序(webApp),本实施例对此不进行特别限定。
第一预设时间段可以根据实际需要进行设定,例如,可以将第一预设时间段设置为10分钟,这里仅是举例说明,不具有任何限定作用。
具体地,需要实时地监测客户端与服务器端之间在10分钟内是否通过TCP服务进行过通信,若监测到客户端与服务器端之间10分钟内未通过TCP服务进行过通信,则可以认定该客户端处于闲置状态。
步骤S201,启动TCP服务中的预设线程向服务器端发送协议包,以供服务器端确定是否允许客户端将通信服务由TCP服务切换为UDP服务。
在监测到客户端与服务器端之间10分钟内未通过TCP服务进行过通信的情况下,可以启动TCP服务中的预设线程向服务器端发送协议包,例如,可以启动TCP服务中的Ping线程向服务器端发送Ping包,服务器端在接收到客户端发送的协议包后,根据该协议包可以确定客户端与其在10分钟内未进行过通信,然后判断是否存在允许客户端将通信服务由TCP服务切换为UDP服务的条件,其中,是否允许客户端将通信服务由TCP服务切换为UDP服务的条件指通信服务切换到UDP服务后,客户端与服务器端之间传输的数据包能够大部分被安全完整地送达彼此,若能够实现大部分的数据包被安全完整地送达,则允许客户端将通信服务切换至UDP服务;否则,客户端将通信服务应保持在TCP服务不变。
步骤S202,接收服务器端响应该协议包而发送的第一数据包。
不论是否允许客户端将通信服务由TCP服务切换为UDP服务,服务器端在确定后,都会响应该协议包而向客户端发送第一数据包,客户端接收服务器端发送的第一数据包,其中,服务器端向客户端发送的第一数据包是按照预定格式进行封装的,例如,第1-4个字节用于存储数据信息,其中,数据信息包括编码信息,第5-6个字节用户存储数据包的类型,第7-8个字节用户存储数据包的编码格式。
步骤S203,对第一数据包进行解析,得到第一数据包的类型以及第一数据包中预置的编码。
具体地,在步骤S202中介绍了服务器端发送给客户端的第一数据包是按照预定格式进行封装的,因此,客户端在接收到第一数据包之后,还需要对接收到的第一数据包进行解析,这里对第一数据包进行解析主要是为了得到第一数据包的类型以及第一数据包中预置的编码。
步骤S204,若第一数据包为第一类型的数据包,且预置的编码为预设编码,则将通信服务由TCP服务切换为UDP服务。
在解析得到第一数据包的类型以及第一数据包中预置的编码,客户端还需要判断第一数据包的类型是否为第一类型,即第一数据包是否为第一类型的数据包,以及第一数据包中预置的编码是否为预设编码,若第一数据包为第一类型的数据包,且预置的编码为预设编码,则客户端将通信服务由TCP服务切换为UDP服务,即客户端将基于UDP协议与服务器端进行UDP通信,此时与客户端进行通信的是服务器端的呈现服务器(Presence服务器),由于此时客户端处于闲置状态,将通信服务切换为UDP服务后,还能在一定程度上保持客户端与服务器端之间数据包传输的实时性,而且还节省服务器端资源,节省成本。
根据本发明上述实施例提供的方法,在监测到客户端与服务器端之间在第一预设时间段未通过TCP服务进行过通信,将通信服务由TCP服务切换为UDP服务,既能在一定程度上保持客户端与服务器端之间数据包传输的实时性,又能减轻服务器端的压力,节省服务器端资源,节省成本。
图3示出了根据本发明另一个实施例的通信方法的流程示意图。如图3所示,该方法包括以下步骤:
步骤S300,获取客户端本地当前时间以及客户端与服务器端之间最近一次的通信时间。
具体地,这里可以采用TCP服务中的预设线程,例如Ping线程,获取客户端本地当前时间以及客户端与服务器端之间最近一次的通信时间;当然可以启动其他具有监测功能的线程来获取客户端本地当前时间以及客户端与服务器端之间最近一次的通信时间。
步骤S301,比较客户端本地当前时间与客户端与服务器端之间最近一次的通信时间的差值是否大于或等于第一预设时间段,若是,则执行步骤S302。
在获取到客户端本地当前时间以及客户端与服务器端之间最近一次的通信时间之后,计算客户端本地当前时间与客户端与服务器端之间最近一次的通信时间的差值,判断差值是否大于或等于第一预设时间段,若差值大于或等于第一预设时间段,则表明客户端与服务器端之间在第一预设时间段未通过TCP服务进行过通信,其中,第一预设时间段可以根据实际需要进行设定,例如,可以将第一预设时间段设置为10分钟,这里仅是举例说明,不具有任何限定作用。
步骤S302,确定客户端与服务器端之间在第一预设时间段未通过TCP服务进行过通信。
具体地,若客户端本地当前时间与客户端与服务器端之间最近一次的通信时间的差值大于或等于10分钟,则可以认定客户端与服务器端之间10分钟内未通过TCP服务进行过通信,该客户端处于闲置状态。
步骤S303,启动TCP服务中的预设线程向服务器端发送协议包,以供服务器端确定是否允许客户端将通信服务由TCP服务切换为UDP服务。
在监测到客户端与服务器端之间10分钟内未通过TCP服务进行过通信的情况下,可以启动TCP服务中的预设线程向服务器端发送协议包,例如,可以启动TCP服务中的Ping线程向服务器端发送Ping包,服务器端在接收到客户端发送的协议包后,根据该协议包可以确定客户端与其在10分钟内未进行过通信,然后判断是否存在允许客户端将通信服务由TCP服务切换为UDP服务的条件,其中,是否允许客户端将通信服务由TCP服务切换为UDP服务的条件指通信服务切换到UDP服务后,客户端与服务器端之间传输的数据包能够大部分被安全完整地送达彼此,若能够实现大部分的数据包被安全完整地送达,则允许客户端将通信服务切换至UDP服务;否则,客户端将通信服务应保持在TCP服务不变。
步骤S304,接收服务器端响应该协议包而发送的第一数据包。
不论是否允许客户端将通信服务由TCP服务切换为UDP服务,服务器端在确定后,都会响应该协议包而向客户端发送第一数据包,客户端接收服务器端发送的第一数据包,其中,服务器端向客户端发送的第一数据包是按照预定格式进行封装的,例如,第1-4个字节用于存储数据信息,其中,数据信息包括编码信息,第5-6个字节用户存储数据包的类型,第7-8个字节用户存储数据包的编码格式。
步骤S305,对第一数据包进行解析,得到第一数据包的类型以及第一数据包中预置的编码。
具体地,在步骤S304中介绍了服务器端发送给客户端的第一数据包是按照预定格式进行封装的,因此,客户端在接收到第一数据包之后,还需要对接收到的第一数据包进行解析,这里对第一数据包进行解析主要是为了得到第一数据包的类型以及第一数据包中预置的编码。
步骤S306,若第一数据包为第一类型的数据包,且预置的编码为预设编码,则将通信服务由TCP服务切换为UDP服务。
在解析得到第一数据包的类型以及第一数据包中预置的编码,客户端还需要判断第一数据包的类型是否为第一类型,即第一数据包是否为第一类型的数据包,以及第一数据包中预置的编码是否为预设编码,若第一数据包为第一类型的数据包,且预置的编码为预设编码,客户端将会主动断开TCP服务中的TCP通道,将通信服务由TCP服务切换为UDP服务,并基于UDP协议与服务器端进行UDP通信,客户端与服务器端之间的通信情况可以参见图4。
为了保证客户端与服务器端之间数据传递的实时性,每一个客户端与服务器端之间均采用TCP通信方式,假如每一台Gateway服务器能连接1万个客户端,有100万个用户需要保持TCP连接的话,则需要100台Gateway服务器。但是这100万个用户可能只有20%保持在线,客户端与服务器端之间所建立的TCP通道很多是处于闲置状态的,未能有效地利用,但是还需要100台服务器来维持,就会造成服务器资源的浪费,利用本发明实施例提供的通信方法,客户端与服务器端之间在第一预设时间段未通过TCP服务进行过通信的情况下,客户端可以将通信服务由TCP服务切换为UDP服务,此时只需要20台Gateway服务器即可满足客户端与服务器端之间的通信,使80%未处于活跃状态的用户的客户端通过UDP通信方式与服务器端的Presence服务器进行通信,从而节省了服务器资源,同时也节省了成本。
步骤S307,启动UDP服务中的预设线程每隔第二预设时间段向服务器端发送协议包,以保持客户端与服务器端之间的UDP通道畅通。
客户端将通信服务切换为UDP服务后,服务器端与客户端进行通信的服务器是Presence服务器,其中,Presence服务器是用来保存用户当前的在线状态的服务器。
其中,预设线程可以根据实际需要进行设定,例如,可以设定为Ping线程;第二预设时间段也可以根据实际需要进行设定,例如可以设定为45秒,这里仅是举例说明,不具有任何限定作用。在本发明实施例中,客户端需要启动UDP服务中的Ping线程每隔45秒向服务器端发送Ping包,保持通道的畅通。
步骤S308,接收服务器端通过UDP服务而发送的第二数据包。
服务器端可以根据其他用户向该客户端用户发送的消息、或者对该客户端的用户发表的消息进行点赞或评论(这里仅是举例说明),或者响应客户端发送的Ping包而向客户端发送第二数据包,具体地,可以通过UDP服务所建立的UDP通道向客户端发送第二数据包,客户端接收服务器端发送的第二数据包,其中,服务器端向客户端发送的第二数据包是按照预定格式进行封装的,例如,第1-4个字节用于存储数据信息,其中,数据信息包括编码信息,第5-6个字节用户存储数据包的类型,第7-8个字节用户存储数据包的编码格式。
步骤S309,对第二数据包进行解析,得到第二数据包的类型。
具体地,在步骤S308中介绍了服务器端发送给客户端的第二数据包是按照预定格式进行封装的,因此,客户端在接收到第二数据包之后,还需要对接收到的第二数据包进行解析,这里对第二数据包进行解析主要是为了得到第一数据包的类型。
步骤S310,若第二数据包为第二类型的数据包,则将通信服务由UDP服务切换为TCP服务。
其中,第二类型的数据包具体为:唤醒类型的数据包;例如,针对其他用户向该客户端用户发送的消息,服务器端可以通过UDP服务向客户端发送唤醒类型的数据包,客户端判断第二数据包为唤醒类型的数据包,则能够认定为需要客户端的用户处理对应的消息,则客户端可以将通信服务由UDP服务切换为TCP服务。
步骤S311,若第二数据包为第一类型的数据包或者第三类型的数据包,则保持通信服务为UDP服务。
其中,第一类型的数据包具体为:结果类型的数据包;第三类型的数据包具体为:通知类型的数据包。
例如,服务器端针对其他用户对该客户端的用户发表的消息进行点赞或评论(这里仅是举例说明)可以向客户端发送通知类型的数据包,或者响应客户端发送的Ping包而向客户端发送结果类型的数据包,客户端判断第二数据包为结果类型的数据包或者通知类型的数据包,则可以认定该消息无需用户当前就要处理,则客户端可以将通信服务不便,即保持通信服务为UDP服务。
根据本发明上述实施例提供的方法,在监测到客户端与服务器端之间在第一预设时间段未通过TCP服务进行过通信,将通信服务由TCP服务切换为UDP服务,既能在一定程度上保持客户端与服务器端之间数据包传输的实时性,又能减轻服务器端的压力,节省服务器端资源,节省成本;若客户端判断出服务器端通过UDP服务而发送的第二数据包为第二类型的数据包,则可以将通信服务由UDP服务切换为TCP服务,以保证客户端与服务器端之间数据包传输的实时性。
图5示出了根据本发明一个实施例的通信装置的结构示意图。该装置应用于客户端,如图5所示,该装置500包括:监测模块510、第一发送模块520、接收模块530、解析模块540和处理模块550。
监测模块510,用于实时监测客户端与服务器端之间在第一预设时间段是否通过TCP服务进行过通信。
第一发送模块520,用于若监测到客户端与服务器端之间在第一预设时间段未通过TCP服务进行过通信,则启动TCP服务中的预设线程向服务器端发送协议包,以供服务器端确定是否允许客户端将通信服务由TCP服务切换为UDP服务。
接收模块530,用于接收服务器端响应该协议包而发送的第一数据包。
解析模块540,用于对第一数据包进行解析,得到第一数据包的类型以及第一数据包中预置的编码。
处理模块550,用于若第一数据包为第一类型的数据包,且预置的编码为预设编码,则将通信服务由TCP服务切换为UDP服务。
根据本发明上述实施例提供的装置,在监测到客户端与服务器端之间在第一预设时间段未通过TCP服务进行过通信,将通信服务由TCP服务切换为UDP服务,既能在一定程度上保持客户端与服务器端之间数据包传输的实时性,又能减轻服务器端的压力,节省服务器端资源,节省成本。
图6示出了根据本发明另一个实施例的通信装置的结构示意图。如图6所示,该装置600包括:监测模块610、第一发送模块620、接收模块630、解析模块640、处理模块650和第二发送模块660。
监测模块610进一步包括:获取单元611,用于获取客户端本地当前时间以及客户端与服务器端之间最近一次的通信时间;
比较单元612,用于比较客户端本地当前时间与客户端与服务器端之间最近一次的通信时间的差值是否大于或等于第一预设时间段;
确定单元613,用于若比较客户端本地当前时间与客户端与服务器端之间最近一次的通信时间的差值大于或等于第一预设时间段,则确定客户端与服务器端之间在第一预设时间段未通过TCP服务进行过通信。
第一发送模块620,用于若监测到客户端与服务器端之间在第一预设时间段未通过TCP服务进行过通信,则启动TCP服务中的预设线程向服务器端发送协议包,以供服务器端确定是否允许客户端将通信服务由TCP服务切换为UDP服务;
接收模块630,用于接收服务器端响应该协议包而发送的第一数据包。
解析模块640,用于对第一数据包进行解析,得到第一数据包的类型以及第一数据包中预置的编码。
处理模块650,用于若第一数据包为第一类型的数据包,且预置的编码为预设编码,则将通信服务由TCP服务切换为UDP服务。
第二发送模块660,用于启动UDP服务中的预设线程每隔第二预设时间段向服务器端发送协议包,以保持客户端与服务器端之间的UDP通道畅通。
此外,接收模块630进一步用于:接收服务器端通过UDP服务而发送的第二数据包。
解析模块640进一步用于:对第二数据包进行解析,得到第二数据包的类型。
处理模块650进一步用于:若第二数据包为第二类型的数据包,则将通信服务由UDP服务切换为TCP服务;若第二数据包为第一类型的数据包或者第三类型的数据包,则保持通信服务为UDP服务。
其中,第一类型的数据包具体为:结果类型的数据包;第二类型的数据包具体为:唤醒类型的数据包;第三类型的数据包具体为:通知类型的数据包。
根据本发明上述实施例提供的装置,在监测到客户端与服务器端之间在第一预设时间段未通过TCP服务进行过通信,将通信服务由TCP服务切换为UDP服务,既能在一定程度上保持客户端与服务器端之间数据包传输的实时性,又能减轻服务器端的压力,节省服务器端资源,节省成本;若客户端判断出服务器端通过UDP服务而发送的第二数据包为第二类型的数据包,则可以将通信服务由UDP服务切换为TCP服务,以保证客户端与服务器端之间数据包传输的实时性。
本申请实施例提供了一种非易失性计算机存储介质,所述计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的通信方法。
图7示出了根据本发明一个实施例的客户端的结构示意图,本发明具体实施例并不对客户端的具体实现做限定。
如图7所示,该客户端可以包括:处理器(processor)702、通信接口(Communications Interface)704、存储器(memory)706、以及通信总线708。
其中:
处理器702、通信接口704、以及存储器706通过通信总线708完成相互间的通信。
通信接口704,用于与其它设备比如客户端或其它服务器等的网元通信。
处理器702,用于执行程序710,具体可以执行上述通信方法实施例中的相关步骤。
具体地,程序710可以包括程序代码,该程序代码包括计算机操作指令。
处理器702可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。客户端包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器706,用于存放程序710。存储器706可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序710具体可以用于使得处理器702执行以下操作:实时监测客户端与服务器端之间在第一预设时间段是否通过TCP服务进行过通信;
若否,则启动TCP服务中的预设线程向服务器端发送协议包,以供服务器端确定是否允许客户端将通信服务由TCP服务切换为UDP服务;
接收服务器端响应该协议包而发送的第一数据包;
对第一数据包进行解析,得到第一数据包的类型以及第一数据包中预置的编码;
若第一数据包为第一类型的数据包,且预置的编码为预设编码,则将通信服务由TCP服务切换为UDP服务。
在一种可选的实施方式中,程序710用于使得处理器702执行以下操作:接收服务器端通过UDP服务而发送的第二数据包;
对第二数据包进行解析,得到第二数据包的类型;
若第二数据包为第二类型的数据包,则将通信服务由UDP服务切换为TCP服务;
若第二数据包为第一类型的数据包或者第三类型的数据包,则保持通信服务为UDP服务。
在一种可选的实施方式中,程序710用于使得处理器702执行以下操作:启动UDP服务中的预设线程每隔第二预设时间段向服务器端发送协议包,以保持客户端与服务器端之间的UDP通道畅通。
在一种可选的实施方式中,程序710用于使得处理器702在实时监测客户端与服务器端之间在第一预设时间段是否通过TCP服务进行过通信时:获取客户端本地当前时间以及客户端与服务器端之间最近一次的通信时间;
比较客户端本地当前时间与客户端与服务器端之间最近一次的通信时间的差值是否大于或等于第一预设时间段;
若是,则确定客户端与服务器端之间在第一预设时间段未通过TCP服务进行过通信。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
Claims (10)
1.一种通信方法,应用于客户端,其特征在于,所述方法包括:
实时监测客户端与服务器端之间在第一预设时间段是否通过TCP服务进行过通信;
若否,则启动所述TCP服务中的预设线程向服务器端发送协议包,以供所述服务器端确定是否允许客户端将通信服务由TCP服务切换为UDP服务;
接收所述服务器端响应该协议包而发送的第一数据包;
对所述第一数据包进行解析,得到所述第一数据包的类型以及第一数据包中预置的编码;
若所述第一数据包为第一类型的数据包,且预置的编码为预设编码,则将通信服务由TCP服务切换为UDP服务。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:接收所述服务器端通过UDP服务而发送的第二数据包;
对所述第二数据包进行解析,得到所述第二数据包的类型;
若所述第二数据包为第二类型的数据包,则将通信服务由UDP服务切换为TCP服务;
若所述第二数据包为第一类型的数据包或者第三类型的数据包,则保持通信服务为UDP服务。
3.根据权利要求1或2所述的方法,其特征在于,在将通信服务由TCP服务切换为UDP服务之后,所述方法还包括:启动UDP服务中的预设线程每隔第二预设时间段向服务器端发送协议包,以保持客户端与服务器端之间的UDP通道畅通。
4.根据权利要求1或2所述的方法,其特征在于,所述实时监测客户端与服务器端之间在第一预设时间段是否通过TCP服务进行过通信进一步包括:
获取客户端本地当前时间以及客户端与服务器端之间最近一次的通信时间;
比较客户端本地当前时间与客户端与服务器端之间最近一次的通信时间的差值是否大于或等于第一预设时间段;
若是,则确定客户端与服务器端之间在第一预设时间段未通过TCP服务进行过通信。
5.一种通信装置,应用于客户端,其特征在于,所述装置包括:
监测模块,用于实时监测客户端与服务器端之间在第一预设时间段是否通过TCP服务进行过通信;
第一发送模块,用于若监测到客户端与服务器端之间在第一预设时间段未通过TCP服务进行过通信,则启动所述TCP服务中的预设线程向服务器端发送协议包,以供所述服务器端确定是否允许客户端将通信服务由TCP服务切换为UDP服务;
接收模块,用于接收所述服务器端响应该协议包而发送的第一数据包;
解析模块,用于对所述第一数据包进行解析,得到所述第一数据包的类型以及第一数据包中预置的编码;
处理模块,用于若所述第一数据包为第一类型的数据包,且预置的编码为预设编码,则将通信服务由TCP服务切换为UDP服务。
6.根据权利要求5所述的装置,其特征在于,所述接收模块进一步用于:接收所述服务器端通过UDP服务而发送的第二数据包;
所述解析模块进一步用于:对所述第二数据包进行解析,得到所述第二数据包的类型;
所述处理模块进一步用于:若所述第二数据包为第二类型的数据包,则将通信服务由UDP服务切换为TCP服务;若所述第二数据包为第一类型的数据包或者第三类型的数据包,则保持通信服务为UDP服务。
7.根据权利要求5或6所述的装置,其特征在于,所述装置还包括:第二发送模块,用于启动UDP服务中的预设线程每隔第二预设时间段向服务器端发送协议包,以保持客户端与服务器端之间的UDP通道畅通。
8.根据权利要求5或6所述的装置,其特征在于,所述监测模块进一步包括:
获取单元,用于获取客户端本地当前时间以及客户端与服务器端之间最近一次的通信时间;
比较单元,用于比较客户端本地当前时间与客户端与服务器端之间最近一次的通信时间的差值是否大于或等于第一预设时间段;
确定单元,用于若比较客户端本地当前时间与客户端与服务器端之间最近一次的通信时间的差值大于或等于第一预设时间段,则确定客户端与服务器端之间在第一预设时间段未通过TCP服务进行过通信。
9.一种客户端,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1-4中任一项所述的通信方法对应的操作。
10.一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如权利要求1-4中任一项所述的通信方法对应的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710725975.4A CN107465751B (zh) | 2017-08-22 | 2017-08-22 | 通信方法、装置、客户端及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710725975.4A CN107465751B (zh) | 2017-08-22 | 2017-08-22 | 通信方法、装置、客户端及计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107465751A CN107465751A (zh) | 2017-12-12 |
CN107465751B true CN107465751B (zh) | 2020-10-16 |
Family
ID=60550275
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710725975.4A Active CN107465751B (zh) | 2017-08-22 | 2017-08-22 | 通信方法、装置、客户端及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107465751B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111327614A (zh) * | 2020-02-21 | 2020-06-23 | 浙江德迅网络安全技术有限公司 | 一种socket协议连接转换为其它协议连接的实现方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000207298A (ja) * | 1999-01-14 | 2000-07-28 | Kdd Corp | ファイル転送方法 |
CN104539531A (zh) * | 2014-12-25 | 2015-04-22 | 网宿科技股份有限公司 | 数据传输方法及装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6546425B1 (en) * | 1998-10-09 | 2003-04-08 | Netmotion Wireless, Inc. | Method and apparatus for providing mobile and other intermittent connectivity in a computing environment |
US20130279378A1 (en) * | 2012-04-19 | 2013-10-24 | Delphax Technologies Canada, Ltd. | Cascaded Streaming of Data Through Virtual Chain of Nodes in Hub Topology |
US9526069B2 (en) * | 2012-04-20 | 2016-12-20 | Qualcomm Incorporated | Early initiation of dormancy of a radio connection |
CN103546917B (zh) * | 2013-11-07 | 2016-10-05 | 华为技术有限公司 | 数据传输方法和装置 |
CN103986762B (zh) * | 2014-05-15 | 2018-03-27 | 京信通信系统(中国)有限公司 | 一种进行进程状态检测的方法及装置 |
CN104320425A (zh) * | 2014-08-28 | 2015-01-28 | 海视云(北京)科技有限公司 | 消息的接收与发送方法及装置 |
CN105262836A (zh) * | 2015-10-30 | 2016-01-20 | 惠州高盛达科技有限公司 | 服务器推送信息的方法及客户端接收推送信息的方法 |
-
2017
- 2017-08-22 CN CN201710725975.4A patent/CN107465751B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000207298A (ja) * | 1999-01-14 | 2000-07-28 | Kdd Corp | ファイル転送方法 |
CN104539531A (zh) * | 2014-12-25 | 2015-04-22 | 网宿科技股份有限公司 | 数据传输方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107465751A (zh) | 2017-12-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109347934B (zh) | 消息推送方法和系统以及服务器、存储介质和电子装置 | |
US10154106B2 (en) | Method for sending heartbeat message and mobile terminal | |
CN108616914B (zh) | 一种断线重连的方法及装置 | |
CN105897888B (zh) | 一种客户端连接方法及系统 | |
CN104009938A (zh) | 基于路由层面的长连接的方法和系统 | |
CN109040295B (zh) | 异常断线的确定方法及装置、终端及存储介质 | |
CN107508916B (zh) | 用于智能机器人的服务器链接管理方法 | |
CN111541555A (zh) | 群聊优化方法及相关产品 | |
WO2023040380A1 (zh) | WebRTC通信方法及系统 | |
US20150067066A1 (en) | Provisioning Communication Services using Proxy Server in a Cloud | |
CN110912805B (zh) | 消息读取状态的同步方法、终端、服务端及系统 | |
CN107465751B (zh) | 通信方法、装置、客户端及计算机存储介质 | |
CN111901395B (zh) | 多集群切换方法及装置 | |
KR20130017264A (ko) | 지능형 사물에 대한 웹 서비스 제공 시스템 및 방법 | |
CN112131014B (zh) | 决策引擎系统及其业务处理方法 | |
CN115004650B (zh) | 节点配置方法、装置、分布式系统及计算机可读介质 | |
CN110958291B (zh) | 一种工业车辆数据传输系统及方法 | |
CN107104813B (zh) | 一种信息传输方法、网关及控制器 | |
CN108924773B (zh) | 消息处理方法及装置 | |
CN114286431B (zh) | 低功耗模式的开启方法和装置、存储介质及电子装置 | |
CN111277599A (zh) | 一种远程调用处理方法及装置 | |
CN108259576B (zh) | 一种软硬件实时信息传输系统和方法 | |
CN105446803A (zh) | 一种应用程序管理方法和装置 | |
CN114338477A (zh) | 一种通信链路监控方法、装置、设备及存储介质 | |
CN109039928A (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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20180402 Address after: 100083 1-701-1, Haidian District Cheng Fu Road, Haidian District, Beijing, seven layer 1-701-1 Applicant after: Digital Trade Technology (Beijing) Co., Ltd. Address before: 100083, Haidian District, Beijing, Fu Cheng Road, No. 28 excellent building, block A, floor 8 Applicant before: Century Light Technology Development (Beijing) Co., Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |