利索能及
我要发布
收藏
专利号: 2017107970021
申请人: 武汉斗鱼网络科技有限公司
专利类型:发明专利
专利状态:已下证
更新日期:2025-11-27
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种通信优化方法,其特征在于,包括:

S1,为每一个客户端进程创建对应的命名管道,其中,每一个客户端进程通过调用对应命名管道的接口函数与服务器完成异步I/O操作;

S2,将所有的命名管道句柄绑定到服务器的完成端口上,其中,所述完成端口运行于服务器的后台线程中;

S3,通过完成端口获取每一个命名管道上的异步I/O操作,并根据每一个异步I/O操作的类型,调用相应的函数方法进行相应的处理。

2.如权利要求1所述的通信优化方法,其特征在于,所述步骤S1中为每一个客户端进程创建对应的命名管道进一步包括:调用CreatNamePipe接口函数为每一个客户端进程创建对应的命名管道,并保存该接口函数返回的每一个命名管道句柄。

3.如权利要求1所述的通信优化方法,其特征在于,所述步骤S1之前还包括:在服务器定义异步调用overlapped结构体,该结构体用于实现I/O接口的异步调用;

相应地,所述步骤S1还包括:

通过向命名管道上的接口函数传递overlapped结构体参数,实现该接口函数的异步调用。

4.如权利要求2所述的通信优化方法,其特征在于,所述步骤S2还包括:基于CreatIoCompletionPort接口函数,在服务器上创建完成端口,并保存所述CreatIoCompletionPort接口函数返回的完成端口句柄;

基于所述CreatIoCompletionPort接口函数,将所有命名管道句柄绑定到完成端口上,以便于通过完成端口管理所有的命名管道。

5.如权利要求4所述的通信优化方法,其特征在于,所述步骤S3中通过完成端口获取每一个命名管道上的异步I/O操作进一步包括:通过完成端口接收每一个客户端进程与服务器进行的异步I/O操作,并将所有的异步I/O操作按照时间顺序存储于队列中,其中,每一个客户端进程通过相应的命名管道与服务器进行异步I/O操作。

6.如权利要求5所述的通信优化方法,其特征在于,所述步骤S2还包括:调用CreatThreat函数在服务器创建一个后台线程,使得所述完成端口运行于所述后台线程中;

相应地,所述步骤S3还包括:

后台线程通过调用GetQueuedCompletionStatus接口函数获取完成端口的队列中存储的异步I/O操作。

7.如权利要求6所述的通信优化方法,其特征在于,所述步骤S3中根据每一个异步I/O操作的类型,调用相应的函数方法进行处理进一步包括:若异步I/O操作为连接请求I/O事件,则调用ConnectNamedPipe函数等待下一个客户端连接;

若异步I/O操作为读请求I/O事件,则调用ReadFile函数接口从客户端发送的数据;

若异步I/O操作为写请求I/O事件,则调用WriteFile函数向客户端发送数据。

8.一种通信优化系统,其特征在于,包括:

创建模块,用于为每一个客户端进程创建对应的命名管道,其中,每一个客户端进程通过调用对应命名管道上的接口函数与服务器完成异步I/O操作;

绑定模块,用于将所有的命名管道句柄绑定到服务器完成端口上,其中,所述完成端口运行于服务器的后台线程中;

获取模块,用于通过完成端口获取每一个命名管道上的异步I/O操作;

处理模块,用于根据每一个异步I/O操作的类型,调用相应的函数方法进行相应的处理。

9.一种通信优化方法的设备,其特征在于,包括处理器、存储器和总线;

所述处理器和存储器通过所述总线完成相互间的通信;

所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1-7任一项所述的方法。

10.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如权利要求1至7任一所述的方法。