下你所需,载你所想!
汇集开发技术源码资料

利用APC异步模型实现底层socket高效并发

:56.723KB :1 :2023-01-30 13:22:00

部分简介

socket有着不同的模型,不同的模型有不同的并发性能。
常用的模型一般有线程池模型,Select模型,Asynchronous异步模型,IOCP等等(WSAAsyncSelect内部即使用IOCP),不同的模型有不同的优势。
本程序使用的模型利用Asyncroneus Procedure Call完整实现。本质上仍然是Asynchronous异步模型,但是和原来的Asynchronous异步模型不同的是,本程序直接实现了WSPSelect的IOCTL_AFD_SELECT异步过程,和其他的异步过程的实现函数完全不同(注意:WSASelect并未开放异步接口,程序参考ReactOS实现)
叫“全网首发”可能也有点问题,不知道之前有没有大佬逆向过winsock实现过相似的异步过程。

可以看到效率十分接近,证明本模型在1000用户量依次连接时异步效率不错。(在测试1000连接时,BBTCP出现了大约1%的连接没有连上,本程序在此测试中未出现此情况。在测试10000连接时,本程序也出现了约1%的连接没有连上的情况,这也说明本单线程模型可能不是很适合超大量用户并发)

利用APC异步模型实现底层socket高效并发

热门推荐

相关文章