本发明涉及电力通信技术领域,具体涉及一种服务器端接收客户端并发连接和数据处理方法。
背景技术:
在电力监控领域,随着互联网的发展和用户的增加,监控主站服务器端面对的客户端数量越来越多。在现有的大多数服务器端接收客户端的请求时,直接处理用户的数据,返回给客户端相应的应答后才开始响应下一个用户请求,因此数据处理时间成为制约服务器端响应的瓶颈;另外,少数服务器端程序中,生成多个进程或线程并行处理多个用户请求,进程或线程可以按需或事先生成,多个同时运行的进程或线程将会消耗大量的系统资源,如果客户端请求数量过多,势必会导致响应客户端请求的速度变慢。
针对上述问题,我们迫切需要一种技术把数据的接收和处理分隔开,使服务器在一定时间内能够响应尽量多的客户端请求。
技术实现要素:
为了解决上述技术问题中的不足,本发明的目的在于:提供一种服务器端接收客户端并发连接和数据处理方法,能够对客户端的数据进行高效的处理、应答。
本发明为解决其技术问题所采用的技术方案为:
所述服务器端接收客户端并发连接和数据处理方法,包括以下步骤:
a、服务器端开辟一块首尾相连的缓冲区;
b、缓冲区设置读指针和写指针,并同时指向缓冲区队列的头部;
c、服务器端接收客户端请求,接收到之后把数据放入写指针指向的缓冲区地址,同时写指针自增一个数据单位,读指针指向下一个数据单元,然后接收下一个连接请求,而不对接收到的数据做任何处理;
d、服务器端为缓冲区的数据处理专门开辟一个任务,此任务读取写指针指向的缓冲区位置的数据,然后对数据做相应的处理,对客户端进行应答,然后读指针自增一个数据单位,直到与写指针重合。
进一步优选,步骤a中的缓冲区为环形队列缓冲区,环形队列缓冲区的大小固定。
与现有技术相比,本发明具有以下有益效果:
本发明可以在短时间内响应更多的客户端请求,而把客户端的数据处理交由另一个任务单独执行,提高了服务器端程序响应效率。
附图说明
图1本发明的流程框图。
具体实施方式
下面结合附图对本发明实施例做进一步描述:
实施例1
如图1所示所述服务器端接收客户端并发连接和数据处理方法,包括以下步骤:
a、服务器端开辟一块首尾相连的缓冲区;
b、缓冲区设置读指针和写指针,并同时指向缓冲区队列的头部;
c、服务器端接收客户端请求,接收到之后把数据放入写指针指向的缓冲区地址,同时写指针自增一个数据单位,读指针指向下一个数据单元,然后接收下一个连接请求,而不对接收到的数据做任何处理;
d、服务器端为缓冲区的数据处理专门开辟一个任务,此任务读取写指针指向的缓冲区位置的数据,然后对数据做相应的处理,对客户端进行应答,然后读指针自增一个数据单位,直到与写指针重合。
其中,步骤a中的缓冲区为环形队列缓冲区,环形队列缓冲区的大小固定。