1.一种基于多查询线程的通信方法,其特征在于,包括:
创建一个监听套接字,并将其与服务器的IP地址以及所述服务器的一个可用端口绑定;
创建两个以上的查询线程、两个以上的数据处理线程和一个接受连接线程;
接受连接线程通过监听套接字接受客户端的连接,返回与各客户端一一对应的连接套接字,并将连接套接字分发给各查询线程;
各查询线程接收所述连接套接字,并存入各自的查询套接字队列;
依据一查询线程可处理的最大连接套接字数量,各查询线程从各自的查询套接字队列中依序循环取出一组连接套接字;
接收所述一组连接套接字中有数据的连接套接字中的数据,并将所述数据放入数据队列,由所述数据处理线程并发处理。
2.根据权利要求1所述的基于多查询线程的通信方法,其特征在于,所述“接收所述一组连接套接字中有数据的连接套接字中的数据,并将所述数据放入数据队列,由所述数据处理线程并发处理”之后,进一步包括:
创建两个以上的数据发送线程;
将处理完且需要发送至客户端的数据放入发送队列,由所述数据发送线程发送至对应的客户端。
3.根据权利要求1所述的基于多查询线程的通信方法,其特征在于,所述“创建一个监听套接字,并将其与服务器的IP地址以及所述服务器的一个可用端口绑定”之后,进一步包括:
服务器通过所述监听套接字监听客户端的连接。
4.根据权利要求1所述的基于多查询线程的通信方法,其特征在于,所述“接受连接线程通过监听套接字接受客户端的连接,返回与各客户端一一对应的连接套接字,并将连接套接字分发给各查询线程”具体为:
预设时间片的时长;
接受连接线程通过监听套接字接受一时间片内客户端的连接,返回与各客户端一一对应的连接套接字,并存入接受套接字队列;
将所述接受套接字队列内的连接套接字分发给当前连接套接字个数最少的一查询线程;
若存在两个以上的所述一查询线程,则将所述接受套接字队列内的连接套接字分发给任一的所述一查询线程;
清空所述接受套接字队列;
继续执行所述接受连接线程通过监听套接字接受一时间片内客户端的连接的步骤。
5.根据权利要求1所述的基于多查询线程的通信方法,其特征在于,所述“接受连接线程通过监听套接字接受客户端的连接,返回与各客户端一一对应的连接套接字,并将连接套接字分发给各查询线程;各查询线程接收所述连接套接字,并存入各自的查询套接字队列”之后,进一步包括:
若一客户端断开与服务器的连接,则关闭所述一客户端对应的连接套接字;
从接收所述连接套接字的查询线程的查询套接字队列中删除所述连接套接字,并通知数据处理线程进行回收处理。
6.根据权利要求2所述的基于多查询线程的通信方法,其特征在于,所述查询线程、数据处理线程和数据发送线程的个数的比例为1:1:1。
7.一种基于多查询线程的通信系统,其特征在于,包括:
第一创建模块,用于创建一个监听套接字,并将其与服务器的IP地址以及所述服务器的一个可用端口绑定;
第二创建模块,用于创建两个以上的查询线程、两个以上的数据处理线程和一个接受连接线程;
分发模块,用于接受连接线程通过监听套接字接受客户端的连接,返回与各客户端一一对应的连接套接字,并将连接套接字分发给各查询线程;
存入模块,用于各查询线程接收所述连接套接字,并存入各自的查询套接字队列;
取出模块,用于依据一查询线程可处理的最大连接套接字数量,各查询线程从各自的查询套接字队列中依序循环取出一组连接套接字;
第一放入模块,用于接收所述一组连接套接字中有数据的连接套接字中的数据,并将所述数据放入数据队列,由所述数据处理线程并发处理。
8.根据权利要求7所述的基于多查询线程的通信系统,其特征在于,还包括:
第三创建模块,用于创建两个以上的数据发送线程;
第二放入模块,用于将处理完且需要发送至客户端的数据放入发送队列,由所述数据发送线程发送至对应的客户端。
9.根据权利要求7所述的基于多查询线程的通信系统,其特征在于,还包括:
监听模块,用于服务器通过所述监听套接字监听客户端的连接。
10.根据权利要求7所述的基于多查询线程的通信系统,其特征在于,所述分发模块包括:
预设单元,用于预设时间片的时长;
接受单元,用于接受连接线程通过监听套接字接受一时间片内客户端的连接,返回与各客户端一一对应的连接套接字,并存入接受套接字队列;
第一分发单元,用于将所述接受套接字队列内的连接套接字分发给当前连接套接字个数最少的一查询线程;
第二分发单元,用于若存在两个以上的所述一查询线程,则将所述接受套接字队列内的连接套接字分发给任一的所述一查询线程;
清空单元,用于清空所述接受套接字队列;
继续执行单元,用于继续执行所述接受连接线程通过监听套接字接受一时间片内客户端的连接的步骤。