【技术实现步骤摘要】
本专利技术涉及网络通信
,尤其是涉及一种基于TCP/IP通信协议的在线客户端数量的统计系统及方法。
技术介绍
目前实现在线客户端人数,最高访问用户数的统计的技术方案主要是针对基于HTTP协议的网站或者服务器的访问,比较成熟的方案是用Servlet规范中定义的事件监听器(Listener)来实现,但是只能进行粗略的统计,难以做到精确,比如,用户没有退出登录而直接关闭了浏览器,那么在服务器端的Session中,这个用户仍然是存在的,造成统计的误差‘在物联网领域,大部分的穿戴式设备以及智能手机设备与服务器的连接往往是基于TCP协议的,针对linux系统而言,可以通过相关的指令查看服务器某个端口的TCP连接数来估算在线用户的数量,比如,统计80端口连接数可以采用以下指令,netstat-nat|grep-i\80\|wc–l,但是此方法也只能粗略的估计,而且只是知道数量,至于是什么用户在线,什么时候上线却没法获取,而且前面已经跟服务器建立连接的客户端,理论上连接可以一直长期维持下去,但实际情况并非如此,比如为了避免不必要的带宽资源浪费,网络运营商会将采用GPRS通 ...
【技术保护点】
一种基于TCP/IP通信协议的在线客户端数量的统计系统,其特征在于,包括:服务器及与所述服务器TCP连接的至少一客户端,所述服务器用于创建动态链表,所述动态链表包括一头结点和若干子结点,以所述头结点为起始,每个结点通过指针域next依次串联构成所述动态链表,每个结点包括:客户端数据域和存储下一个结点地址的指针域next;所述服务器通过调用epoll_wait函数,判断所述客户端是否有通信事件触发,若是,退出epoll_wait函数,遍历并处理所述通信事件;若否,采用阻塞的方式等待客户端通信事件的触发;其中,所述通信事件包括新的客户端发起TCP连接请求事件、已经建立连接的客户 ...
【技术特征摘要】
1.一种基于TCP/IP通信协议的在线客户端数量的统计系统,其特征在于,包括:服务器及与所述服务器TCP连接的至少一客户端,所述服务器用于创建动态链表,所述动态链表包括一头结点和若干子结点,以所述头结点为起始,每个结点通过指针域next依次串联构成所述动态链表,每个结点包括:客户端数据域和存储下一个结点地址的指针域next;所述服务器通过调用epoll_wait函数,判断所述客户端是否有通信事件触发,若是,退出epoll_wait函数,遍历并处理所述通信事件;若否,采用阻塞的方式等待客户端通信事件的触发;其中,所述通信事件包括新的客户端发起TCP连接请求事件、已经建立连接的客户端断开TCP连接的事件、已经建立TCP连接的客户端有上线命令传输的事件、已经建立TCP连接的客户端有心跳包命令传输的事件、及心跳包监测的定时器中断服务事件。2.根据权利要求1所述的基于TCP/IP通信协议的在线客户端数量的统计系统,其特征在于,每个结点的长度等于当前与所述服务器建立TCP连接的客户端数量。3.根据权利要求1所述的基于TCP/IP通信协议的在线客户端数量的统计系统,其特征在于,所述客户端数据域包括:存储所述客户端ID的字符数组类型变量id,存储所述服务器给当前上线客户端分配的socket文件描述符的整型变量fd,用于所述服务器心跳包丢失统计的整型变量heartbeat_lost_count。4.一种基于TCP/IP通信协议的在线客户端数量的统计方法,其特征在于,包括下述步骤:步骤S110:对所述服务器Socket通信参数进行初始化;步骤S120:所述服务器建立并监听socket套接字描述符socket_fd;步骤S130:对所述服务器的模型epoll进行初始化;步骤S140:所述服务器创建动态链表并启动控制心跳包的系统定时器;步骤S150:所述服务器调用epoll_wait函数,并判断所述客户端是否有通信事件触发,若是,退出epoll_wait函数,所述服务器遍历并处理所述通信事件;若否,采用阻塞的方式等待客户端通信事件的触发;其中,所述动态链表包括一头结点和若干子结点,以所述头结点为起始,每个结点通过指针域next依次串联构成所述动态链表,每个结点包括:客户端数据域和存储下一个结点地址的指针域next;其中,所述通信事件包括新的客户端发起TCP连接请求事件、已经建立连接的客户端断开TCP连接的事件、已经建立TCP连接的客户端有上线命令传输的事件、已经建立TCP连接的客户端有心跳包命令传输的事件、及心跳包监测的定时器中断服务事件。5.根据权利要求4所述的基于TCP/IP通信协议的在线客户端数量的统计方法,其特征在于,在步骤S150中,所述服务器遍历并处理所述通信事件,当所述通信事件为新的客户端发起TCP连接请求命令,具体包括下述步骤:epoll_wait函数发现触发待处理的事件刚好等于监听套接字描述符socket_fd;根据socket_fd调用accept函数返回新的socket套接字描述符,记为fd;将侦听到的fd通过epoll_ctl函数添加到epoll句柄当中。6.根据权利要求4所述的基于TCP/IP通信协议的在线客户端数量的统计方法,其特征在于,在步骤S150中,所述服务器遍历并处理所述通信事件,当所述通信事件为已经建立连接的客户端断...
【专利技术属性】
技术研发人员:宁运琨,赵国如,梁升云,李慧奇,
申请(专利权)人:深圳先进技术研究院,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。