一种多客户端访问单点控制优化实现方法技术

技术编号:15520507 阅读:68 留言:0更新日期:2017-06-04 10:03
本发明专利技术涉及一种类似VxWorks单进程嵌入式操作系统中多客户端访问单点控制优化实现方法,利用select机制对集合中的描述符进行监听,一旦有描述符就绪select就返回;如果select未超时返回,说明有客户端描述符就绪,然后更新该客户端定时器时间为初始值,对于未就绪的客户端描述符,独立的定时器管理线程会自动进行相应定时器的更新,对于定时器已经为0的客户端,则服务器会将其踢除下线,同时将其从select监听集合中踢除,释放其使用的系统资源。本发明专利技术通过在服务器端引入独立的定时器管理线程,对于处于空闲状态的客户端,服务器及时将其踢除下线,从而提高服务器和网络资源的利用效率。

Optimization method for multiple client access single point control

The invention relates to a single process similar to the VxWorks embedded operating system in multi client access control single point optimization method, to monitor the set of descriptors by using select mechanism, once the descriptor ready select is returned; if the select does not return, the client descriptor is ready, then the initial value of the client timer time update not ready for the client descriptor, independent thread timer management will automatically update the corresponding timer, the timer has 0 for the client, the server will kick off the assembly line, at the same time from the select monitor set to kick out, release the use of system resources. The invention manages the thread by introducing an independent timer on the server side, and the server can kick off the offline in time for the client in the idle state so as to improve the utilization efficiency of the server and the network resource.

【技术实现步骤摘要】
一种多客户端访问单点控制优化实现方法
本专利技术涉及网络通信
,尤其涉及一种类似VxWorks单进程嵌入式操作系统中多客户端访问单点控制优化实现方法。
技术介绍
VxWorks是一种在数据网络中应用比较广泛的单进程嵌入式操作系统,通过socket提供的通信接口可以解决类似操作系统中客户端和服务器之间的网络通信问题,然而,这类操作系统不支持并发处理多进程任务。因此,将基于socket通信的多客户端-单服务器模型应用在单进程嵌入式操作系统中,服务器使用何种控制机制才能更好的响应多个客户端的读写以及异常情况是至关重要的。目前这类操作系统中常用的方案是:通过select机制对多客户端的访问控制进行管理。其基本实现原理如下:通过select对多个客户端进行监听,并为它们统一设置超时时间,如果其中某些客户端突然断开连接,服务器并不能检测到这些客户端已经下线,只有在所有客户端断开连接,select定时器超时后,才会将它们一起踢除下线,同时释放它们使用的网络资源,这种方式对客户端的管理存在很大的局限性。有些设计在此方案上进行优化,为每个客户端设置一个老化标记,通过select中的timeout参数设置超时对其进行老化管理,但还是不能满足客户对老化精确度的需求。
技术实现思路
本专利技术所要解决的技术问题是提供一种多客户端访问单点控制优化实现方法,通过在服务器端引入独立的定时器管理线程,对于处于空闲状态的客户端,服务器及时将其踢除下线,从而提高服务器和网络资源的利用效率。本专利技术解决上述技术问题的技术方案如下:一种多客户端访问单点控制优化实现方法,包括以下步骤:(1)服务器和客户端分别创建socket套接字描述符,服务器将创建的socket套接字描述符加入select监听集合;(2)服务器创建一个独立的定时器管理线程,并在所述定时器管理线程中设定客户端定时器更新的时间粒度,所述定时器管理线程共享select监听集合中的所有套接字描述符;(3)通过select机制监听服务器的socket套接字描述符,如果有客户端发起连接,则与其建立连接并将与该客户端对应的连接套接字加入select监听集合,同时设定客户端定时器的初始值;(4)定时器管理线程根据设置的时间粒度依次对所有客户端定时器做定时更新,如果select监听到某客户端的连接套接字描述符就绪,则将该客户端定时器恢复到初始值,同时定时器管理线程中相应客户端的定时器则从初始值开始更新;对于未就绪的客户端描述符,则定时器管理线程根据时间更新粒度自动进行相应的定时器更新;对于定时器已经为0的客户端,则在定时器管理线程中将其踢除下线,并将其从监听集合中踢除,释放其使用的系统资源。本专利技术的有益效果是:本专利技术在服务器端引入独立的客户端定时器管理线程,通过设置客户端定时器更新的时间粒度,使得客户端定时器更新时间更加精确,极大地减少了由于定时器超时,客户端被踢除下线的时间误差,更好地解决了僵死客户端长期占用网络资源的问题,同时也提高了客户端定时器的精确性。在上述技术方案的基础上,本专利技术还可以做如下改进。进一步,所述步骤(2)中的客户端定时器更新的时间粒度为毫秒或微秒级,定时器管理线程中的客户端定时器更新的时间粒度适用于所有已连接客户端,各客户端定时器的初始值相同。采用上述进一步方案的有益效果是这里的毫秒或者微秒级可以使误差更小。进一步,所述定时器的初始值以及管理线程中的时间更新粒度可以由用户根据需要进行设置,所有客户端归属于一个管理线程进行管理。采用上述进一步方案的有益效果是客户端定时器超时,服务器能够在时间粒度所设置的较短时间内将其踢除下线并释放其使用的网络资源,这不仅解决了由于网络故障服务器检测不到客户端下线而产生僵死连接的问题,同时极大地减少了传统方案中的超时误差,并且提高了客户端定时器的精确性,从而有效地提高了网络资源的利用效率。进一步,所述各客户端定时器的初始值为客户端定时器更新的时间粒度的整数倍。采用上述进一步方案的有益效果是误差更小。附图说明图1为通过select统一设置超时时间的传统方法原理图;图2为传统方法的一种优化方法原理图;图3为本专利技术新方案客户端定时器更新过程原理图;图4为本专利技术多客户端单点控制网络架构图。具体实施方式以下结合附图对本专利技术的原理和特征进行描述,所举实例只用于解释本专利技术,并非用于限定本专利技术的范围。如图1所示,利用select来监听客户端的连接和读写以及异常情况,并借助其中的timeout参数为所有客户端统一设置超时时间,假设超时时间为120s,下面通过图1来说明此方案的实现原理:(1)10s时,所有客户端同时在线;(2)20s时,B断开连接,由于此时仍有客户端A、C、D处于连接状态,因此服务器不会将B踢除下线;(3)30s时,C断开连接,由于此时仍有客户端A、D处于连接状态,因此服务器不会将B、C踢除下线;(4)直到第330s时,A、D同时断开连接,等待select定时器超时,在第450s定时器超时,此时服务器将全部客户端踢除下线,释放它们使用的网络资源。上述技术虽然可以实现对多个客户端的读写以及异常情况进行监听,但是其中存在很大缺陷。首先,如果某些客户端在连接过程中长时间处于空闲状态,它们将长期占用网络资源,造成资源的极大浪费;其次,如果由于网络故障,某些客户端忽然断开连接,在仍有客户端处于连接状态的情况下,服务器是检测不到这些客户端已经下线的,从而造成很多连接处于僵死状态,这极大地降低了通信质量和通信效率。目前的一种优化方案虽然对上述方案有所改进,但是在定时器超时误差方面,仍然不能满足电信网络的要求。如图2所示,设每个客户端的定时器为120s,终端更新周期为1s,即select定时器设置为1s。如果上一次监听select是未超时返回,未就绪终端定时器进行减1操作,之后当前线程睡眠1s,第二次监听select超时返回,所有终端定时器减1。如果在120s定时器超时过程中,某些客户端的定时器一直是这样进行循环更新的,则定时器最终超时的时间将达到两倍的定时时间,即240s。这对于目前电信网络的需求状况是远远不够的。本专利技术的目的在于为类似VxWorks这类单进程嵌入式操作系统提供一种多客户端访问单点控制优化实现方法,由于操作系统是单进程的,因此在服务器端引入独立的定时器管理线程,对于长期处于空闲状态的客户端,服务器及时将其踢除下线,减少定时误差,从而提高服务器和网络资源的利用效率。本专利技术提出的方案在传统select机制的基础上,引入了独立的定时器线程来进行客户端定时器的管理和更新,并且可以灵活设置时间粒度(管理线程中客户端定时器的更新周期)。使得客户端定时器的更新时间更加精确,降低了定时器的超时误差。客户端的定时器超时时间以及管理线程中的时间粒度用户可通过软件(设置变量)进行配置。本专利技术中,利用select机制对集合中的描述符进行监听,一旦有描述符就绪select就返回。如果select未超时返回,说明有客户端描述符就绪,然后更新该客户端定时器时间为初始值,对于未就绪的客户端描述符,独立的定时器管理线程会自动进行相应定时器的更新,对于定时器已经为0的客户端,则服务器会将其踢除下线,同时将其从监听集合中踢除,释放其使用的系统资源,其具体实现方法为:(1本文档来自技高网...
一种多客户端访问单点控制优化实现方法

【技术保护点】
一种多客户端访问单点控制优化实现方法,其特征在于,包括以下步骤:(1)服务器和客户端分别创建socket套接字描述符,服务器将创建的socket套接字描述符加入select监听集合;(2)服务器创建一个独立的定时器管理线程,并在所述定时器管理线程中设定客户端定时器更新的时间粒度,所述定时器管理线程共享select监听集合中的所有套接字描述符;(3)通过select机制监听服务器的socket套接字描述符,如果有客户端发起连接,则与其建立连接并将与该客户端对应的连接套接字加入select监听集合,同时设定客户端定时器的初始值;(4)定时器管理线程根据设置的时间粒度依次对所有客户端定时器做定时更新,如果select监听到某客户端的连接套接字描述符就绪,则将该客户端定时器恢复到初始值,同时定时器管理线程中相应客户端的定时器则从初始值开始更新;对于未就绪的客户端描述符,则定时器管理线程根据时间更新粒度自动进行相应的定时器更新;对于定时器已经为0的客户端,则在定时器管理线程中将其踢除下线,并将其从监听集合中踢除,释放其使用的系统资源。

【技术特征摘要】
1.一种多客户端访问单点控制优化实现方法,其特征在于,包括以下步骤:(1)服务器和客户端分别创建socket套接字描述符,服务器将创建的socket套接字描述符加入select监听集合;(2)服务器创建一个独立的定时器管理线程,并在所述定时器管理线程中设定客户端定时器更新的时间粒度,所述定时器管理线程共享select监听集合中的所有套接字描述符;(3)通过select机制监听服务器的socket套接字描述符,如果有客户端发起连接,则与其建立连接并将与该客户端对应的连接套接字加入select监听集合,同时设定客户端定时器的初始值;(4)定时器管理线程根据设置的时间粒度依次对所有客户端定时器做定时更新,如果select监听到某客户端的连接套接字描述符就绪,则将该客户端定时器恢复到初始值,同时定时器管理线程中相应客户端的定时器则从初始值开...

【专利技术属性】
技术研发人员:张形形杨鑫蔡平刘佳
申请(专利权)人:深圳市风云实业有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1