网络模型之重叠IO(一)
前面已经说过 select 和 Event selct 模型,这两个还是比较小型的,今天来说重叠 IO,这个可以支持上千个用户,当然理解起来也越来越难了点。 重叠 IO 模型是典型的非阻塞模型,接收数据和拷贝数据这两部分全部占用系统时间片,实现了效率最大化,只要将一个结构体投给系统它便会替我们完成耗时的处理。 首先来看如何创建一个支持重叠 IO 的套接字,使用的是 WSASocket 函数,原型如下: SOCKET WSASocket ( int af, // 地址族 int type, // 传输方式 int protocol, // 通信协议 LPWSAPROTOCOL_INFO lpProtocolInfo, GROUP g, DWORD dwFlags ); 前3个参数就是以前使用的 socket 函数的参数,主要来看后面的几个参数。lpProtocolInfo 可以传递一个 WSAPROTOCOL_INFO 结构体的地址,其中包含创建套接字的信息,不使用时传入 NULL;g 是作为扩展函数而预约的参数,也为 NULL 便好;dwFlags 表示套接字的标志,要使用重叠 IO,得设为 WSA_FLAG_OVERLAPPED。… Continue Reading 网络模型之重叠IO(一)